Function at 0x3f314f1f
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ecx
push esi
push edi
mov edi, dword [esp + 0x10]
push edi
push 0x1c
mov esi, ecx
call fcn.3f370f8d
test ax, ax
jne 0x3f314f67
mov ecx, dword [esi + 0x242e4]
movsx eax, di
shl eax, 7
add eax, ecx
test byte [eax + 0x6e], 2
jne 0x3f314f5f
movsx eax, word [eax + 0x24]
push 0x3f30e486
push eax
mov ecx, esi
call fcn.3f36d6f8
test ax, ax
je 0x3f314f67
xor ax, ax
jmp 0x3f3157d3
push ebx
push ebp
push edi
mov ebp, 0xff5
push ebp
mov ecx, esi
call fcn.3f30bf29
test ax, ax
mov ebx, 0xfd8
je 0x3f315008
mov eax, dword [esi + 0x242e4]
push edi
push ebp
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.3f30bf29
mov ecx, dword [esp + 0x18]
movsx eax, ax
shl eax, 7
test byte [eax + ecx + 0x6c], 8
jne 0x3f315008
movsx ebp, di
shl ebp, 7
mov eax, ecx
add eax, ebp
test byte [eax + 0x6f], 0x40
je 0x3f315008
cmp word [eax + 0x3c], 0
jne 0x3f315000
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
test ax, ax
jne 0x3f315000
push edi
push 0x101b
mov ecx, esi
call fcn.3f30bf29
test ax, ax
jne 0x3f315000
push edi
push 0xfe2
mov ecx, esi
call fcn.3f30bf29
test ax, ax
jne 0x3f315000
mov eax, dword [esi + 0x242e4]
cmp word [eax + ebp + 0x34], 0
je 0x3f315008
xor ax, ax
jmp 0x3f3157d1
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
test ax, ax
je 0x3f315036
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
mov edx, dword [esi + 0x242e4]
movsx ecx, di
shl ecx, 7
cmp ax, word [ecx + edx + 0x38]
je 0x3f3157cd
mov eax, dword [esi + 0x242e4]
movsx ebp, di
mov dword [esp + 0x10], ebp
shl ebp, 7
add eax, ebp
cmp word [eax + 0x3c], 0
je 0x3f31510c
mov cl, byte [eax + 0x79]
test cl, 2
jne 0x3f31510c
test cl, 8
je 0x3f315080
test byte [eax + 0x6e], 2
jne 0x3f31510c
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
test ax, ax
jne 0x3f31510c
push edi
push 0x120b
mov ecx, esi
call fcn.3f30beb2
test ax, ax
je 0x3f3150af
mov eax, dword [esi + 0x242e4]
movsx eax, word [eax + ebp + 0x3c]
push eax
push 0xfe4
mov ecx, esi
call fcn.3f30bf29
test ax, ax
jne 0x3f31510c
push edi
push 0x11b6
mov ecx, esi
call fcn.3f30beb2
test ax, ax
je 0x3f3150d7
mov eax, dword [esi + 0x242e4]
movsx ecx, word [eax + ebp + 0x3c]
shl ecx, 7
cmp word [ecx + eax + 0x34], 0
jne 0x3f31510c
push edi
push 0x129c
mov ecx, esi
call fcn.3f30beb2
test ax, ax
jne 0x3f31510c
mov eax, dword [esi + 0x242e4]
test byte [eax + ebp + 0x77], 0x10
je 0x3f315000
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
test ax, ax
jne 0x3f315000
push edi
push 0x101b
mov ecx, esi
call fcn.3f30bf29
test ax, ax
je 0x3f315148
mov eax, dword [esi + 0x242e4]
add eax, ebp
test byte [eax + 0x78], 0x40
jne 0x3f315148
test byte [eax + 0x7a], 0x20
jne 0x3f315148
push edi
push 0x11be
mov ecx, esi
call fcn.3f30beb2
test ax, ax
je 0x3f315000
push edi
push 0xfe2
mov ecx, esi
call fcn.3f30bf29
test ax, ax
je 0x3f315189
mov eax, dword [esi + 0x242e4]
push edi
add eax, ebp
push 0xfe2
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.3f30bf29
mov ecx, dword [esp + 0x18]
cmp ax, word [ecx + 0x34]
je 0x3f315189
mov eax, ecx
test byte [eax + 0x79], 1
je 0x3f315000
mov eax, dword [esi + 0x242e4]
movsx eax, word [eax + ebp + 0x34]
test ax, ax
je 0x3f3151eb
push eax
push 0x1023
mov ecx, esi
call fcn.3f30bf29
test ax, ax
jne 0x3f3151eb
push edi
push 0x17
mov ecx, esi
call fcn.3f370f8d
test ax, ax
jne 0x3f3151eb
push edi
push 0x22
mov ecx, esi
call fcn.3f370f8d
test ax, ax
jne 0x3f3151eb
push edi
push 0x1b
mov ecx, esi
call fcn.3f370f8d
test ax, ax
jne 0x3f3151eb
push edi
push 0x14
mov ecx, esi
call fcn.3f370f8d
test ax, ax
je 0x3f315000
mov eax, dword [esi + 0x242e4]
movsx ecx, word [eax + ebp + 0x34]
shl ecx, 7
cmp word [ecx + eax + 2], 0x13a2
jne 0x3f315215
push edi
push 0x17
mov ecx, esi
call fcn.3f370f8d
test ax, ax
je 0x3f315000
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
test ax, ax
jne 0x3f315249
push edi
push 0x1021
mov ecx, esi
call fcn.3f30bf29
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
cmp word [eax + ecx + 2], 0x13a0
jne 0x3f315406
mov eax, dword [esi + 0x242e4]
test byte [eax + ebp + 0x78], 0x80
jne 0x3f3152cf
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
mov ecx, esi
push eax
push 0x1202
call fcn.3f30beb2
test ax, ax
jne 0x3f3152cf
push edi
push 0x10
mov ecx, esi
call fcn.3f370f8d
test ax, ax
jne 0x3f3152cf
push edi
push 0x22
mov ecx, esi
call fcn.3f370f8d
test ax, ax
jne 0x3f3152cf
push edi
push 0x17
mov ecx, esi
call fcn.3f370f8d
test ax, ax
jne 0x3f3152cf
push edi
push 0x14
mov ecx, esi
call fcn.3f370f8d
test ax, ax
jne 0x3f3152cf
push edi
push 0x1b
mov ecx, esi
call fcn.3f370f8d
test ax, ax
jne 0x3f3152cf
push edi
push 4
mov ecx, esi
call fcn.3f370f8d
test ax, ax
je 0x3f315000
mov eax, dword [esi + 0x242e4]
add eax, ebp
test byte [eax + 0x6e], 2
je 0x3f315305
test byte [eax + 0x79], 4
jne 0x3f315305
test byte [eax + 0x78], 0x40
jne 0x3f315305
test byte [eax + 0x7a], 0x20
jne 0x3f315305
push edi
push 0x11be
mov ecx, esi
call fcn.3f30beb2
test ax, ax
je 0x3f315000
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
mov ecx, esi
push eax
push 0x2b
call fcn.3f370f8d
test ax, ax
je 0x3f315406
mov eax, dword [esi + 0x242e4]
push edi
push ebx
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.3f30bf29
mov ecx, dword [esp + 0x18]
movsx eax, ax
shl eax, 7
test byte [eax + ecx + 0x71], 0x10
je 0x3f315398
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
test byte [eax + ecx + 0x7d], 0x40
jne 0x3f315406
mov eax, ecx
push edi
push ebx
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.3f30bf29
mov edx, dword [esi + 0x242e8]
movsx ecx, ax
mov eax, dword [esp + 0x18]
shl ecx, 7
movzx ecx, word [ecx + eax + 0x3e]
movsx ecx, word [edx + ecx*4 + 2]
shl ecx, 7
test byte [ecx + eax + 0x7d], 0x40
jne 0x3f315406
mov eax, dword [esp + 0x18]
movsx ecx, word [eax + ebp + 0x1e]
shl ecx, 7
movsx eax, word [ecx + eax + 0x48]
push eax
push 0x101d
mov ecx, esi
call fcn.3f30bf29
test ax, ax
je 0x3f315406
mov eax, dword [esi + 0x242e4]
mov dword [esp + 0x18], eax
movsx eax, word [eax + ebp + 0x22]
push eax
mov ecx, esi
call fcn.3f314e6f
mov ecx, dword [esp + 0x18]
movsx eax, ax
shl eax, 7
cmp word [eax + ecx], 0x13b3
je 0x3f315406
mov eax, ecx
movsx eax, word [eax + ebp + 0x22]
push eax
mov ecx, esi
call fcn.3f314e6f
mov ecx, esi
push eax
push 3
call fcn.3f370f8d
test ax, ax
je 0x3f315000
mov eax, dword [esi + 0x242e4]
push edi
push ebx
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.3f30bf29
movsx ecx, ax
mov eax, dword [esp + 0x18]
shl ecx, 7
movsx ecx, word [ecx + eax + 0x22]
shl ecx, 7
cmp word [ecx + eax + 2], 0x13af
jne 0x3f315537
movsx eax, word [eax + ebp + 0x1a]
push 0x11e2
push eax
mov ecx, esi
call fcn.3f36d68e
test ax, ax
jne 0x3f315537
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
test byte [eax + ecx + 0x75], 2
jne 0x3f315537
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
test byte [eax + ecx + 0x7f], 1
je 0x3f315537
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
test byte [eax + ecx + 0x7f], 2
jne 0x3f315537
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
test byte [eax + ecx + 0x71], 4
jne 0x3f315537
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
test byte [eax + ecx + 0x7e], 0x40
jne 0x3f315537
push 0x3f30e4f1
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
movsx eax, word [eax + ecx + 0x20]
push eax
mov ecx, esi
call fcn.3f36d6f8
test ax, ax
jne 0x3f315537
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
test byte [eax + ecx + 0x6d], 0x10
je 0x3f315000
mov eax, dword [esi + 0x242e4]
movsx eax, word [eax + ebp + 2]
push 0x11e5
push eax
mov ecx, esi
call fcn.3f36d68e
test ax, ax
je 0x3f31556d
mov eax, dword [esi + 0x242e4]
movsx ecx, word [eax + ebp + 0x38]
shl ecx, 7
test byte [ecx + eax + 0x6c], 4
je 0x3f3157cd
push 0
push 0x3f30e519
push edi
mov ecx, esi
call fcn.3f37e4e1
test ax, ax
jne 0x3f3157cd
push edi
push 0x1023
mov ecx, esi
call fcn.3f30bf29
test ax, ax
je 0x3f3155de
mov eax, dword [esi + 0x242e4]
movsx ecx, word [eax + ebp + 0x64]
shl ecx, 7
movsx eax, word [ecx + eax + 0x3e]
push eax
push edi
mov ecx, esi
call fcn.3f36f9b3
test eax, eax
jne 0x3f3157cd
mov eax, dword [esi + 0x242e4]
movsx ecx, word [eax + ebp + 0x64]
shl ecx, 7
movsx ecx, word [ecx + eax + 0x22]
shl ecx, 7
cmp word [ecx + eax + 2], 0x13af
je 0x3f3157cd
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
test ax, ax
jne 0x3f31560e
push edi
push 0x1021
mov ecx, esi
call fcn.3f30bf29
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
cmp word [eax + ecx + 2], 0x13a0
jne 0x3f31563e
mov eax, dword [esi + 0x242e4]
test byte [eax + ebp + 0x78], 0x80
jne 0x3f3157cd
push edi
push ebx
mov ecx, esi
call fcn.3f30bf29
mov ecx, esi
push eax
push 0x1202
call fcn.3f30beb2
test ax, ax
je 0x3f3157cd
mov eax, dword [esi + 0x242e4]
movsx eax, word [eax + ebp + 0x34]
push eax
push 0x1023
mov ecx, esi
call fcn.3f30bf29
test ax, ax
jne 0x3f3157cd
push edi
push 0xfe2
mov ecx, esi
call fcn.3f30bf29
test ax, ax
je 0x3f3156bd
mov eax, dword [esi + 0x242e4]
push edi
push 0xfe2
mov ecx, esi
lea ebx, [eax + ebp]
call fcn.3f30bf29
cmp ax, word [ebx + 0x34]
jne 0x3f3157cd
test byte [ebx + 0x79], 1
je 0x3f3156bd
push edi
push 0x17
mov ecx, esi
call fcn.3f370f8d
test ax, ax
jne 0x3f3157cd
push edi
push 0x22
mov ecx, esi
call fcn.3f370f8d
test ax, ax
jne 0x3f3157cd
mov eax, dword [esi + 0x242e4]
cmp word [eax + ebp + 0x3c], 0
jne 0x3f3157cd
push edi
push 0x101b
mov ecx, esi
call fcn.3f30bf29
test ax, ax
jne 0x3f3157cd
push edi
push 0x101f
mov ecx, esi
call fcn.3f30bf29
test ax, ax
jne 0x3f3157cd
mov eax, dword [esi + 0x242e4]
add eax, ebp
test byte [eax + 0x78], 0x20
jne 0x3f3157cd
test byte [eax + 0x6e], 2
jne 0x3f3157cd
movsx eax, word [eax + 0x24]
push 0x3f30e54f
push eax
mov ecx, esi
call fcn.3f36d6f8
test ax, ax
jne 0x3f3157cd
mov eax, dword [esi + 0x242e4]
movsx ecx, word [eax + ebp + 0x64]
shl ecx, 7
movsx eax, word [ecx + eax + 0x3e]
push eax
push edi
mov ecx, esi
call fcn.3f36f9b3
test eax, eax
je 0x3f31578f
mov eax, dword [esi + 0x242e4]
movsx eax, word [eax + ebp + 0x64]
push eax
push 0x11ae
mov ecx, esi
call fcn.3f30beb2
test ax, ax
jne 0x3f31578f
mov eax, dword [esi + 0x242e4]
movsx ecx, word [eax + ebp + 0x64]
shl ecx, 7
movzx eax, word [ecx + eax + 0x3e]
push eax
mov ecx, esi
call fcn.3f36d5c4
cmp dword [esp + 0x10], eax
jne 0x3f3157cd
mov eax, dword [esi + 0x242e4]
add eax, ebp
test byte [eax + 0x77], 0x10
jne 0x3f3157b3
cmp word [eax + 0x1a], 0x1769
jne 0x3f315000
test byte [eax + 0x70], 1
je 0x3f315000
movsx eax, word [eax + 0x24]
push 0x3f30e5e4
push eax
mov ecx, esi
call fcn.3f36d6f8
test ax, ax
je 0x3f315000
mov ax, 1
pop ebp
pop ebx
pop edi
pop esi
pop ecx
ret 4