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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x14]
cmp eax, dword [ecx + 8]
jbe 0x4f070e
sub esp, 0x94
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0xa0]
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x6c], ebx
mov ebp, dword [edx + 0x14]
mov dword [esp + 0x68], ebp
mov esi, dword [edx + 0x18]
mov dword [esp + 0x64], esi
mov edi, dword [edx + 0x1c]
mov dword [esp + 0x60], edi
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 0xc]
sub eax, dword [esp + 4]
dec eax
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0x64]
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0xb0]
jmp 0x4f06ad
inc edi
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x34], edi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x60]
mov edi, dword [esp + 0x34]
cmp ebx, edi
jle 0x4f02dc
lea edx, [edi + ecx]
mov ebp, dword [esp + 0xb0]
cmp edx, ebp
jae 0x4f06fb
mov edx, dword [esi + edx*4]
test edx, edx
jne 0x4f00ec
mov edx, dword [esp + 0x28]
jmp 0x4f00ac
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x2c]
add eax, edi
test eax, eax
jge 0x4f02c9
xor eax, eax
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 0x14]
mov ebx, dword [esp + 0x9c]
mov dword [esp], ebx
call edx
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 4]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 0x14]
mov ebx, dword [esp + 0x9c]
mov dword [esp], ebx
call edx
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x9c]
mov dword [esp], ebx
mov ebp, dword [esp + 0x5c]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x20]
add edx, ebp
mov dword [esp + 8], edx
call ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x3c]
mov ecx, edx
mov ebx, eax
mul edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], eax
mov ebp, dword [esp + 0x74]
mov esi, ebp
add ebp, eax
mov edi, dword [esp + 8]
mov dword [esp + 0x38], edi
mov eax, edi
mul ecx
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x44], edx
mov edi, dword [esp + 0x10]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x74], ebp
mov ebp, ecx
sar ecx, 0x1f
mov dword [esp + 0x4c], ecx
imul ebx, ecx
mov ecx, dword [esp + 0x58]
add ecx, ebx
mov ebx, dword [esp + 0x54]
add esi, ebx
adc edi, ecx
mov dword [esp + 0x78], edi
mov ecx, dword [esp + 0x7c]
mov ebx, ecx
add ecx, eax
mov esi, eax
mov eax, edx
mul ebp
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x38]
imul edi, ecx
mov ecx, dword [esp + 0x50]
add ecx, edi
add ebx, esi
adc edx, ecx
mov dword [esp + 0x80], edx
mov ecx, dword [esp + 0x84]
mov edx, ecx
add ecx, eax
mov ebx, eax
mov eax, dword [esp + 0x48]
mov esi, edx
mul ebp
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x44]
imul edi, ecx
mov ecx, dword [esp + 0x58]
add ecx, edi
add esi, ebx
adc edx, ecx
mov dword [esp + 0x88], edx
mov ecx, dword [esp + 0x8c]
mov edx, ecx
add ecx, eax
mov ebx, dword [esp + 0x24]
mov esi, ebx
add ebx, ebp
mov dword [esp + 0x24], ebx
mov edi, dword [esp + 0x90]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
imul ebx, ecx
mov ecx, dword [esp + 0x54]
add ecx, ebx
add edx, eax
adc edi, ecx
mov dword [esp + 0x90], edi
add esi, ebp
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x4c]
adc edx, eax
xor eax, eax
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb0]
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0x34]
jmp 0x4f00ac
mov esi, dword [esp + 0x1c]
cmp esi, eax
jg 0x4f0100
mov eax, esi
jmp 0x4f0100
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x68]
sub eax, ecx
mov ebx, dword [esp + 0xa0]
imul eax, dword [ebx + 0xc]
mov dword [esp + 0x5c], eax
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov dword [esp], ebp
mov dword [esp + 4], esi
mov ebp, dword [esp + 0x24]
mov dword [esp + 8], ebp
mov esi, dword [esp + 0x28]
mov dword [esp + 0xc], esi
call fcn.00452890
mov eax, dword [esp + 0x14]
test eax, eax
sete cl
setb dl
mov ebx, dword [esp + 0x10]
cmp ebx, 0x10000
xchg ebp, ebx
setb bl
xchg ebp, ebx
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x6c]
sub esi, edi
mov dword [esp + 0x70], esi
mov edi, dword [esp + 0x5c]
lea esi, [edi + esi*8]
and ebp, ecx
or edx, ebp
test dl, dl
je 0x4f067d
mov edx, dword [esp + 0xa0]
mov ebp, dword [edx]
mov ecx, dword [edx + 4]
cmp ecx, esi
jbe 0x4f06f4
mov eax, ebx
shr bx, 8
mov byte [ebp + esi], bl
mov ecx, dword [edx + 4]
mov ebx, dword [edx]
mov ebp, dword [esp + 0x70]
lea ebp, [edi + ebp*8 + 1]
cmp ecx, ebp
jbe 0x4f06ed
mov dword [esp + 0x30], esi
mov byte [esi + ebx + 1], al
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc], ecx
call fcn.00452890
mov eax, dword [esp + 0x14]
test eax, eax
sete cl
mov edx, dword [esp + 0x10]
cmp edx, 0x10000
setb bl
test eax, eax
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebx, ecx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4f0656
mov ebx, dword [esp + 0xa0]
mov ecx, dword [ebx + 4]
mov ebp, dword [ebx]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x5c]
lea eax, [edi + esi*8 + 2]
cmp ecx, eax
jbe 0x4f06e8
mov eax, edx
shr dx, 8
mov ecx, esi
mov esi, dword [esp + 0x30]
mov byte [esi + ebp + 2], dl
mov edx, dword [ebx + 4]
mov ebp, dword [ebx]
lea edi, [edi + ecx*8 + 3]
cmp edx, edi
jbe 0x4f06df
mov byte [esi + ebp + 3], al
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc], ecx
call fcn.00452890
mov eax, dword [esp + 0x14]
test eax, eax
sete cl
mov edx, dword [esp + 0x10]
cmp edx, 0x10000
setb bl
test eax, eax
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebx, ecx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4f062f
mov ebx, dword [esp + 0xa0]
mov ecx, dword [ebx + 4]
mov ebp, dword [ebx]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x5c]
lea eax, [edi + esi*8 + 4]
cmp eax, ecx
jae 0x4f06da
mov eax, edx
shr dx, 8
mov ecx, esi
mov esi, dword [esp + 0x30]
mov byte [esi + ebp + 4], dl
mov edx, dword [ebx + 4]
mov ebp, dword [ebx]
lea edi, [edi + ecx*8 + 5]
cmp edi, edx
jae 0x4f06d1
mov byte [esi + ebp + 5], al
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
call fcn.00452890
mov eax, dword [esp + 0x14]
test eax, eax
sete cl
setb dl
mov ebx, dword [esp + 0x10]
cmp ebx, 0x10000
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, ecx
or edx, ebp
test dl, dl
je 0x4f0608
mov edx, dword [esp + 0xa0]
mov ecx, dword [edx + 4]
mov ebp, dword [edx]
mov esi, dword [esp + 0x70]
mov eax, edx
mov edx, dword [esp + 0x5c]
mov edi, edx
lea edx, [edx + esi*8 + 6]
cmp edx, ecx
jae 0x4f06ca
mov edx, ebx
shr bx, 8
mov ecx, edx
mov edx, dword [esp + 0x30]
mov byte [edx + ebp + 6], bl
mov ebx, dword [eax + 4]
mov ebp, dword [eax]
lea esi, [edi + esi*8 + 7]
cmp esi, ebx
jae 0x4f06c1
mov byte [edx + ebp + 7], cl
mov ecx, dword [esp + 0x18]
inc ecx
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0xb0]
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0x64]
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0xb0]
mov ebp, dword [esp + 0x60]
cmp ecx, ebp
jge 0x4f06a4
mov dword [esp + 0x18], ecx
lea edi, [esp + 0x74]
xor eax, eax
call fcn.0045af88
mov ecx, dword [esp + 0x18]
mov edi, ebp
mov ebp, dword [esp + 0xbc]
cmp ecx, ebp
jae 0x4f0704
mov ebp, dword [esp + 0xb8]
mov ebp, dword [ebp + ecx*4]
mov dword [esp + 0x2c], ebp
imul ecx, ebx
mov dword [esp + 0x40], ecx
xor eax, eax
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x24], eax
xor eax, eax
jmp 0x4f00c1
test eax, eax
setg dl
cmp ebx, 0xffff
seta bl
and ebx, ecx
or ebx, edx
test bl, bl
je 0x4f0628
mov ebx, 0xffffffff
jmp 0x4f051a
xor ebx, ebx
jmp 0x4f051a
test eax, eax
setg bl
cmp edx, 0xffff
seta dl
and edx, ecx
or edx, ebx
test dl, dl
je 0x4f064f
mov edx, 0xffffffff
jmp 0x4f0482
xor edx, edx
jmp 0x4f0482
cmp edx, 0xffff
seta dl
test eax, eax
setg bl
and edx, ecx
or ebx, edx
test bl, bl
je 0x4f0676
mov edx, 0xffffffff
jmp 0x4f03e6
xor edx, edx
jmp 0x4f03e6
cmp ebx, 0xffff
seta dl
test eax, eax
setg bl
and edx, ecx
or ebx, edx
test bl, bl
je 0x4f069d
mov ebx, 0xffffffff
jmp 0x4f0357
xor ebx, ebx
jmp 0x4f0357
inc edx
mov ecx, dword [esp + 0x68]
mov ebp, dword [esp + 0x64]
cmp edx, ebp
jge 0x4f06ba
mov dword [esp + 0x20], edx
jmp 0x4f05a9
add esp, 0x94
ret
mov eax, esi
mov ecx, ebx
call fcn.0045ad60
mov eax, edx
call fcn.0045ad60
mov eax, edi
mov ecx, edx
call fcn.0045ad60
call fcn.0045ad60
mov eax, edi
mov ecx, edx
call fcn.0045ad60
call fcn.0045ad60
mov eax, ebp
call fcn.0045ad60
mov eax, esi
call fcn.0045ad60
mov eax, edx
mov ecx, ebp
call fcn.0045ad60
mov eax, ecx
mov ecx, ebp
call fcn.0045ad60
nop
call fcn.00459790
jmp fcn.004f0020