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

Disassembly:
sub esp, 0xd4
mov dword [esp + 0x20], edx
mov edx, ecx
push ebx
push ebp
xor ecx, ecx
mov dword [esp + 0x30], edx
mov eax, dword [edx]
xor ebx, ebx
push esi
mov esi, dword [edx + 8]
xor ebp, ebp
push edi
mov eax, dword [eax]
mov dword [esp + 0x54], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x14], ebp
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x6c], esi
cmp byte [eax + 0x57], cl
je 0x4f3abe
lea eax, [ebx + 7]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov eax, dword [esi + 0x2c]
mov edx, 0x18
test al, 0x20
movzx ecx, word [esi + 0x18]
mov dword [esp + 0x50], eax
mov eax, 0x1bf
cmove edx, eax
mov ebp, dword [esp + 0xe8]
movzx eax, word [esi + 0x1a]
mov dword [esp + 0x60], eax
movzx eax, word [esi + 0x1c]
mov dword [esp + 0x64], eax
movzx eax, word [esi + 0x32]
mov dword [esp + 0x68], eax
movzx eax, word [esi + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esi]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x5c], eax
movzx eax, word [esi + 0x16]
mov edi, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x78], edi
movzx edi, cx
mov ecx, edx
and ecx, 0xffffffc3
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x38]
test al, 4
mov eax, dword [esp + 0x30]
cmove ecx, edx
mov dword [esp + 0x24], edi
push ebp
push ecx
mov ecx, dword [esp + 0x40]
push edi
push dword [eax + 0x2c]
mov edx, dword [ecx + 4]
lea ecx, [esp + 0x90]
call fcn.004f1040
mov edi, eax
add esp, 0x10
xor eax, eax
mov dword [esp + 0x1c], edi
mov word [esi + 0x12], ax
mov eax, dword [ebp + 8]
movzx eax, word [eax]
mov ecx, eax
mov dword [esp + 0x74], ecx
cmp cx, 0xa
jg 0x4f3b74
xor eax, eax
jmp 0x4f3b87
cwde
cdq
push edx
push eax
call fcn.00464840
add esp, 8
sub ax, 0x21
movzx eax, ax
mov dword [esp + 0x28], eax
mov ecx, 0x100
movzx eax, ax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x34], eax
test edi, edi
je 0x4f42b9
movzx edx, word [edi + 0xc]
lea ebx, [edi + 0xa]
mov eax, edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], eax
cmp ax, cx
je 0x4f3bc9
test byte [ebx], 0x80
je 0x4f3bf9
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x24]
movsx ecx, word [eax + ecx*2]
test ecx, ecx
js 0x4f3bf0
mov eax, dword [ebp + 0xc]
add ecx, ecx
mov eax, dword [eax + 4]
test dword [eax + ecx*8 + 4], 0xf
jne 0x4f4290
jmp 0x4f3bf9
cmp ecx, 0xffffffff
je 0x4f4290
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
and ecx, dword [edi + 0x20]
and eax, dword [edi + 0x24]
or ecx, eax
jne 0x4f4290
mov eax, 0x100
test word [ebx], ax
je 0x4f3c20
cmp edx, 0x10
je 0x4f4290
mov eax, dword [esp + 0x30]
test byte [eax + 0x24], 8
je 0x4f3c36
mov eax, dword [edi]
test byte [eax + 4], 1
je 0x4f4290
cmp byte [ebp + 0x36], 0
je 0x4f3c51
movzx eax, word [ebp + 0x32]
dec eax
cmp dword [esp + 0x24], eax
jne 0x4f3c51
mov ecx, dword [esp + 0x38]
or byte [ecx + 0x10], 2
jmp 0x4f3c59
mov eax, dword [esp + 0x38]
or byte [eax + 0x10], 1
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x4c]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x60]
mov word [esi + 0x1a], ax
mov eax, dword [esp + 0x64]
movzx edi, cx
mov word [esi + 0x1c], ax
inc edi
movzx eax, word [esi + 0x34]
mov word [esi + 0x30], cx
cmp eax, edi
jae 0x4f3ce0
mov ecx, dword [esp + 0x2c]
add edi, 7
and edi, 0xfffffff8
push 0
lea eax, [edi*4]
push eax
call fcn.004600a0
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x4f42b5
movzx eax, word [esi + 0x34]
shl eax, 2
push eax
push dword [esi + 0x38]
push ebp
call fcn.00533a40
mov edx, dword [esi + 0x38]
lea eax, [esi + 0x40]
add esp, 0xc
cmp edx, eax
je 0x4f3cd9
mov ecx, dword [esp + 0x2c]
call fcn.0045fcb0
mov dword [esi + 0x38], ebp
mov word [esi + 0x34], di
movzx ecx, word [esi + 0x30]
mov eax, dword [esi + 0x38]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x58]
mov dword [eax + ecx*4], edx
mov ax, word [esi + 0x30]
mov ecx, dword [esi + 8]
inc ax
mov word [esi + 0x30], ax
not ecx
or edi, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
and edi, ecx
or edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x3c]
movzx ebp, ax
mov eax, dword [esi + 0xc]
not eax
mov dword [esi], edi
and edx, eax
mov dword [esi + 4], edx
test cl, 1
je 0x4f3e54
mov edx, dword [esp + 0x1c]
mov edx, dword [edx]
test dword [edx + 4], 0x800
je 0x4f3da4
lea edi, [ebp - 1]
mov dword [esp + 0x20], 0x2e
xor ecx, ecx
test edi, edi
jle 0x4f3dc5
mov ebx, dword [esi + 0x38]
mov esi, dword [esp + 0x20]
mov eax, dword [ebx + ecx*4]
test eax, eax
je 0x4f3d5e
xor ebp, ebp
cmp dword [eax], edx
cmove esi, ebp
inc ecx
cmp ecx, edi
jl 0x4f3d50
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0xe8]
test byte [ebp + 0x38], 0x80
je 0x4f3e15
cmp word [esp + 0x28], 0xa
jl 0x4f3e15
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x24]
movzx edi, cx
movzx ebx, word [eax + edx*2]
cmp di, 0xa
jg 0x4f3dcc
xor eax, eax
jmp 0x4f3de1
mov eax, dword [edx + 0x14]
test eax, eax
je 0x4f3d6b
mov eax, dword [eax]
test eax, eax
je 0x4f3d6b
cdq
push edx
push eax
call fcn.00464840
movsx ecx, ax
add esp, 8
mov dword [esp + 0x20], ecx
jmp 0x4f3d6f
mov ecx, 0x2e
jmp 0x4f3d6f
movsx eax, di
cdq
push edx
push eax
call fcn.00464840
add esp, 8
sub ax, 0x21
movzx eax, ax
sub eax, edi
sub eax, dword [esp + 0x28]
add eax, 0xa
add eax, ebx
test ax, ax
jns 0x4f3e15
cmp word [esp + 0x34], 2
jge 0x4f4290
mov eax, dword [esp + 0x2c]
test dword [eax + 0x50], 0x20000
jne 0x4f4290
or dword [esi + 0x2c], 0x100000
or dword [esi + 0x2c], 4
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esi + 0x2c]
test bl, 2
je 0x4f4094
movzx eax, word [esi + 0x16]
movsx edi, ax
test ecx, ecx
je 0x4f4019
movzx ecx, word [ecx + 8]
test cx, cx
jg 0x4f400c
add eax, ecx
jmp 0x4f4019
mov ebp, dword [esp + 0xe8]
test cl, 0x82
je 0x4f3edc
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x24]
mov edx, dword [esi + 0x2c]
or edx, 1
movsx eax, word [eax + ebx*2]
mov dword [esi + 0x2c], edx
cmp eax, 0xffffffff
je 0x4f3eb5
mov ecx, edx
test eax, eax
js 0x4f3ec0
cmp word [esp + 0x34], 0
jne 0x4f3ec0
movzx eax, word [ebp + 0x32]
mov edi, eax
dec eax
cmp ebx, eax
jne 0x4f3ec0
test byte [ebp + 0x38], 8
jne 0x4f3eb5
cmp edi, 1
jne 0x4f3eab
cmp byte [ebp + 0x36], 0
je 0x4f3eab
cmp word [esp + 0x3c], 2
je 0x4f3eb5
mov ecx, edx
or ecx, 0x10000
jmp 0x4f3ebd
mov ecx, edx
or ecx, 0x1000
mov dword [esi + 0x2c], ecx
cmp byte [esp + 0x99], 1
jbe 0x4f3e19
or ecx, 0x200000
mov dword [esi + 0x2c], ecx
jmp 0x4f3e19
mov eax, dword [esi + 0x2c]
test ecx, 0x100
je 0x4f3ef2
or eax, 8
mov dword [esi + 0x2c], eax
jmp 0x4f3e19
mov edi, dword [esp + 0x1c]
test cl, 0x24
mov ecx, dword [esp + 0x54]
push edi
push dword [esp + 0x28]
push ebp
je 0x4f3fc8
or eax, 0x22
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x2c]
call fcn.004f3860
mov word [esi + 0x1a], ax
xor edx, edx
mov eax, 0x100
mov dword [esp + 0x20], edx
add esp, 0xc
mov ecx, edi
mov dword [esp + 0x18], ecx
test word [ebx], ax
je 0x4f3e25
movzx eax, word [esi + 0x34]
lea edx, [edi + 0x30]
movzx edi, word [esi + 0x30]
inc edi
mov dword [esp + 0x14], edx
cmp eax, edi
jae 0x4f3fa8
mov ecx, dword [esp + 0x2c]
add edi, 7
and edi, 0xfffffff8
push 0
lea eax, [edi*4]
push eax
call fcn.004600a0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4f42b5
movzx eax, word [esi + 0x34]
shl eax, 2
push eax
push dword [esi + 0x38]
push ebx
call fcn.00533a40
mov edx, dword [esi + 0x38]
lea eax, [esi + 0x40]
add esp, 0xc
cmp edx, eax
je 0x4f3f9d
mov ecx, dword [esp + 0x2c]
call fcn.0045fcb0
mov edx, dword [esp + 0x14]
mov dword [esi + 0x38], ebx
mov word [esi + 0x34], di
movzx ecx, word [esi + 0x30]
mov eax, dword [esi + 0x38]
mov dword [eax + ecx*4], edx
mov eax, 1
inc word [esi + 0x30]
or dword [esi + 0x2c], 0x10
mov word [esi + 0x1c], ax
jmp 0x4f3e1d
or eax, 0x12
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x2c]
call fcn.004f3860
add esp, 0xc
mov word [esi + 0x1c], ax
test byte [esi + 0x2c], 0x20
mov edx, edi
mov dword [esp + 0x14], edx
je 0x4f4001
movzx ecx, word [esi + 0x30]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + ecx*4 - 8]
mov dword [esp + 0x18], ecx
jmp 0x4f3e25
xor ecx, ecx
mov dword [esp + 0x18], ecx
jmp 0x4f3e25
mov ecx, dword [esp + 0x18]
test byte [ecx + 0xa], 0x80
jne 0x4f4019
sub eax, 0x14
mov ebp, dword [esp + 0x14]
movzx ecx, ax
test edx, edx
je 0x4f403d
movzx edx, word [edx + 8]
test dx, dx
jg 0x4f4031
add eax, edx
jmp 0x4f403a
test byte [ebp + 0xa], 0x80
jne 0x4f403d
add eax, 0xffffffec
movzx ecx, ax
mov eax, dword [esp + 0x18]
movzx edx, cx
test eax, eax
je 0x4f4060
cmp word [eax + 8], 0
jle 0x4f4060
test ebp, ebp
je 0x4f4060
cmp word [ebp + 8], 0
jle 0x4f4060
lea eax, [ecx - 0x14]
movzx edx, ax
xor eax, eax
cmp dword [esp + 0x18], eax
setne al
sub edi, eax
xor eax, eax
test ebp, ebp
setne al
sub edi, eax
cmp dx, 0xa
mov eax, 0xa
cmovl edx, eax
movzx eax, dx
cmp eax, edi
mov edx, eax
movzx eax, di
cmovge edx, eax
movzx eax, dx
mov ebp, eax
jmp 0x4f40f1
inc word [esi + 0x18]
movzx ecx, word [edi + 8]
movzx edx, word [esi + 0x18]
test cx, cx
jg 0x4f40c6
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x24]
cmp word [eax + edi*2], 0
jl 0x4f40c6
mov ax, word [esi + 0x16]
sub ax, word [esp + 0x20]
add ax, cx
movzx eax, ax
mov ebp, eax
jmp 0x4f40f1
mov eax, dword [ebp + 8]
mov cx, word [esi + 0x16]
sub cx, word [eax + edx*2 - 2]
add cx, word [eax + edx*2]
test dword [esp + 0x3c], 0x100
movzx eax, cx
mov ecx, eax
mov word [esi + 0x16], ax
mov ebp, eax
je 0x4f40f5
lea eax, [ecx + 0xa]
movzx ebp, ax
mov word [esi + 0x16], ax
movzx eax, bp
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x10]
movsx edi, word [eax + 0x28]
mov eax, dword [esp + 0xe8]
movsx ecx, word [eax + 0x30]
mov eax, ecx
shl eax, 4
sub eax, ecx
cdq
idiv edi
lea ecx, [eax + ebp]
lea eax, [ecx + 1]
movsx ecx, cx
movzx edi, ax
inc ecx
mov eax, dword [esp + 0x70]
movsx edx, ax
cmp word [esp + 0x28], di
jl 0x4f4162
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x4f4144
mov eax, dword [esp + 0x28]
jmp 0x4f4185
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x4f4152
mov eax, dword [esp + 0x28]
inc eax
jmp 0x4f4185
sub edx, ecx
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, word [esp + 0x28]
jmp 0x4f4185
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x4f416d
mov ecx, edi
jmp 0x4f4188
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x4f4179
lea eax, [edi + 1]
jmp 0x4f4185
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add ax, di
movzx ecx, ax
movzx eax, cx
test ebx, 0x140
jne 0x4f41f6
lea eax, [ebp + 0x10]
movsx edi, bp
movzx ebx, ax
add edi, 0x10
movsx edx, cx
cmp cx, bx
jl 0x4f41cd
lea eax, [edi + 0x31]
cmp edx, eax
jle 0x4f41b3
movzx eax, cx
jmp 0x4f41f3
lea eax, [edi + 0x1f]
cmp edx, eax
jle 0x4f41bf
lea eax, [ecx + 1]
jmp 0x4f41f0
sub edx, edi
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, cx
jmp 0x4f41f0
lea eax, [edx + 0x31]
cmp edi, eax
jle 0x4f41d8
mov eax, ebx
jmp 0x4f41f3
lea eax, [edx + 0x1f]
cmp edi, eax
jle 0x4f41e4
lea eax, [ebx + 1]
jmp 0x4f41f0
sub edi, edx
movzx eax, byte [edi + str._n_n_t_t_b_b_a_a_a]
add ax, bx
movzx eax, ax
movzx eax, ax
mov ecx, dword [esp + 0x20]
mov edx, esi
mov ebx, dword [esp + 0x38]
push dword [esp + 0x74]
movzx edi, cx
add eax, edi
add eax, dword [esp + 0x38]
mov ecx, dword [ebx + 4]
mov word [esi + 0x14], ax
lea eax, [edi + ebp]
add eax, dword [esp + 0x38]
mov word [esi + 0x16], ax
call fcn.004f3680
add esp, 4
mov edx, esi
mov ecx, ebx
call fcn.004f33c0
mov ecx, dword [esp + 0x78]
mov ebp, dword [esp + 0xe8]
movzx edx, cx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x2c]
test al, 2
movzx ecx, cx
cmove edx, ecx
mov word [esi + 0x16], dx
test al, 0x10
jne 0x4f4288
movzx eax, word [esi + 0x18]
cmp ax, word [ebp + 0x34]
jae 0x4f4288
cmp ax, word [ebp + 0x32]
jb 0x4f4272
mov eax, dword [ebp + 0x38]
and al, 3
cmp al, 2
je 0x4f4288
mov eax, dword [esp + 0x34]
mov ecx, ebx
mov edx, dword [esp + 0x30]
add eax, edi
push eax
push ebp
call fcn.004f3a70
add esp, 8
mov eax, dword [esp + 0x48]
mov word [esi + 0x16], ax
lea ecx, [esp + 0x80]
call fcn.004f0c70
mov ebx, dword [esp + 0x40]
mov edi, eax
mov dword [esp + 0x1c], edi
mov ecx, 0x100
test ebx, ebx
je 0x4f3ba2
jmp 0x4f42b9
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x68]
mov dword [esi], eax
mov eax, dword [esp + 0x5c]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x60]
mov word [esi + 0x1a], ax
mov eax, dword [esp + 0x64]
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x50]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x48]
mov word [esi + 0x16], ax
mov eax, dword [esp + 0x44]
mov word [esi + 0x18], di
mov word [esi + 0x32], cx
mov word [esi + 0x30], ax
cmp di, cx
jne 0x4f4441
mov ebp, dword [esp + 0xe8]
mov edx, dword [esp + 0x24]
movzx ecx, word [ebp + 0x32]
lea eax, [edx + 1]
cmp eax, ecx
jae 0x4f4441
mov ecx, dword [esp + 0x44]
movzx eax, cx
cmp di, ax
jne 0x4f4441
mov eax, dword [ebp + 0x38]
test al, 0x40
jne 0x4f4441
test al, al
jns 0x4f4441
mov ecx, dword [esp + 0x2c]
test dword [ecx + 0x50], 0x4000
jne 0x4f4441
mov eax, dword [ebp + 8]
cmp word [eax + edx*2 + 2], 0x2a
jl 0x4f4441
mov edi, dword [esp + 0x44]
movzx eax, word [esi + 0x34]
movzx edi, di
inc edi
cmp eax, edi
jae 0x4f43d5
add edi, 7
and edi, 0xfffffff8
push 0
lea eax, [edi*4]
push eax
call fcn.004600a0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4f43a3
mov ebx, 7
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
movzx eax, word [esi + 0x34]
shl eax, 2
push eax
push dword [esi + 0x38]
push ebx
call fcn.00533a40
mov edx, dword [esi + 0x38]
lea eax, [esi + 0x40]
add esp, 0xc
cmp edx, eax
je 0x4f43ca
mov ecx, dword [esp + 0x2c]
call fcn.0045fcb0
mov edx, dword [esp + 0x24]
mov dword [esi + 0x38], ebx
mov word [esi + 0x34], di
movzx ecx, word [esi + 0x30]
xor ebx, ebx
mov eax, dword [esi + 0x38]
inc word [esi + 0x18]
inc word [esi + 0x32]
mov dword [eax + ecx*4], ebx
inc word [esi + 0x30]
or dword [esi + 0x2c], 0x8000
mov eax, dword [ebp + 8]
mov cx, word [eax + edx*2]
sub cx, word [eax + edx*2 + 2]
mov edx, dword [esp + 0x30]
movzx eax, cx
mov ecx, dword [esp + 0x34]
sub word [esi + 0x16], ax
add ecx, 5
add eax, ecx
mov ecx, dword [esp + 0x38]
push eax
push ebp
call fcn.004f3a70
mov eax, dword [esp + 0x50]
add esp, 8
mov word [esi + 0x16], ax
mov eax, dword [esp + 0x4c]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x68]
mov word [esi + 0x32], ax
mov eax, dword [esp + 0x50]
mov dword [esi + 0x2c], eax
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0xd4
ret