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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov esi, dword [ecx + 8]
cmp esi, 0xfffffade
je 0x4f5c0b
lea eax, [esp + 0x3a0]
sub eax, esi
cmp eax, 0x13b4
jbe 0x4f5c0b
sub esp, 0x1094
mov eax, 0
mov dword [esp + 0x108c], eax
mov dword [esp + 0x1090], eax
mov byte [esp + 0x25], 0
mov dword [esp + 0x10bc], 0
mov dword [esp + 0x10c0], 0
mov dword [esp + 0x10c4], 0
mov dword [esp + 0x10c8], 0
mov eax, dword [esp + 0x10a4]
mov dword [esp], eax
mov ecx, dword [esp + 0x10a8]
mov dword [esp + 4], ecx
call fcn.004899d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x10c4], eax
mov dword [esp + 0x10c8], ecx
test edx, edx
jne 0x4f5b50
mov eax, dword [ebx + 0x20]
mov dword [esp], ebp
call eax
mov eax, dword [esp + 8]
test eax, eax
sete cl
mov edx, dword [esp + 4]
test edx, edx
sete bl
and ebx, ecx
test bl, bl
jne 0x4f5b49
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
test eax, eax
setl bl
cmp edx, 0x1000
xchg ebp, ebx
setbe bl
xchg ebp, ebx
and ebp, ecx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4f590b
xor ecx, ecx
mov ebx, 1
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x10a4]
mov dword [esp], eax
mov eax, dword [esp + 0x10a8]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov dword [esp + 0xc], 0x1b6
call fcn.00487ff0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10c4], ecx
mov dword [esp + 0x10c8], edx
test ebx, ebx
jne 0x4f5904
mov dword [esp + 0x1088], eax
lea ecx, [0x54155c]
mov dword [esp + 0x1090], ecx
mov dword [esp + 0x108c], eax
mov byte [esp + 0x25], 1
nop
mov ecx, dword [esp + 0x10b0]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x10ac]
mov dword [esp], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x900000
call fcn.00452b50
mov eax, dword [esp + 0x10]
add eax, 0x100000
mov esi, dword [esp + 0x14]
mov ecx, esi
adc esi, 0
mov edx, dword [esp + 0x10]
test esi, esi
jne 0x4f5bf0
mov ebx, dword [esp + 0x10a0]
cmp ebx, eax
jb 0x4f5be7
test ecx, ecx
jne 0x4f5bda
cmp edx, eax
ja 0x4f5bd1
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
nop
mov eax, dword [esp + 0x10b8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x10b4]
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x9ffc00
call fcn.00452b50
mov eax, dword [esp + 0x10]
add eax, 0x400
mov esi, dword [esp + 0x14]
mov ecx, esi
adc esi, 0
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
sub edx, ebx
mov ebp, dword [esp + 0x10a0]
mov edi, ebp
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebx, ebp
mov ebp, dword [esp + 0x1098]
add ebx, ebp
mov dword [esp + 0x1084], ebx
mov ebx, dword [esp + 0x10]
test esi, esi
jne 0x4f5bc8
cmp edi, eax
jb 0x4f5bbf
test ecx, ecx
jne 0x4f5bb2
cmp ebx, eax
ja 0x4f5ba9
mov dword [esp + 0x3c], edx
mov dword [esp + 0x70], eax
lea edi, [esp + 0x80]
mov ecx, 0x400
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, edx
mov edx, dword [esp + 0x38]
test edx, edx
mov ecx, edx
setg dl
mov edi, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov esi, dword [esp + 0x34]
cmp esi, 1
xchg esi, ebx
seta bl
xchg esi, ebx
and esi, ebp
or esi, edx
mov edx, dword [esp + 0x70]
sub edx, ebx
mov dword [esp + 0x28], edx
mov ebp, dword [esp + 0x10a0]
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebx, ebp
add ebx, edi
mov dword [esp + 0x1080], ebx
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4f589e
xor ebp, ebp
xor esi, esi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], esi
xor edi, edi
mov edi, 1
mov dword [esp + 0x48], edi
xor edi, edi
mov dword [esp + 0x54], edi
xor edi, edi
mov dword [esp + 0x50], edi
xor edi, edi
jmp 0x4f5696
mov edx, esi
add esi, 1
mov eax, dword [esp + 0x1080]
movzx ebx, byte [ebx + eax]
xor edi, ebx
movzx ebx, byte [esp + 0x26]
xor ebx, edi
mov byte [esp + edx + 0x80], bl
add edx, 1
mov edx, dword [esp + 0x60]
adc edx, 0
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x28]
mov eax, edi
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x1080]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
sar ecx, 0x1f
mov edi, dword [esp + 0x60]
cmp edi, ecx
xchg ebp, ebx
setl bl
xchg ebp, ebx
xchg ebp, eax
mov byte [esp + 0x27], al
xchg ebp, eax
sete bl
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x5c]
cmp edi, ebp
xchg edi, ebx
seta bl
xchg edi, ebx
and edi, ebx
movzx ebx, byte [esp + 0x27]
or ebx, edi
test bl, bl
je 0x4f55c0
mov ebx, dword [esp + 0x60]
test ebx, ebx
jne 0x4f5b9b
cmp ebp, 0x1000
jae 0x4f5b8f
add edx, ebp
mov dword [esp + 0x70], edx
adc esi, ebx
mov dword [esp + 0x6c], esi
sar esi, 0x1f
mov dword [esp + 0x68], esi
shr esi, 0xc
add esi, edx
mov edi, dword [esp + 0x6c]
adc edi, 0
mov dword [esp + 0x64], edi
shl edi, 0xc
shr esi, 0x14
or edi, esi
mov esi, edi
shl edi, 0x14
sub edx, edi
shr esi, 0xc
mov ebx, dword [esp + 0x64]
sar ebx, 0x14
shl ebx, 0x14
or esi, ebx
mov ebx, dword [esp + 0x70]
sub ebx, edi
mov ebx, dword [esp + 0x6c]
mov edi, ebx
sbb ebx, esi
mov esi, ebp
movzx ebp, byte [esp + ebp + 0x80]
test ebx, ebx
jne 0x4f5b82
mov ebx, dword [esp + 0x3c]
cmp ebx, edx
jbe 0x4f5b79
xchg ebp, eax
mov byte [esp + 0x26], al
xchg ebp, eax
mov ebx, dword [esp + 0x68]
shr ebx, 0x16
mov ebp, dword [esp + 0x70]
add ebx, ebp
adc edi, 0
mov dword [esp + 0x64], edi
shr ebx, 0xa
shl edi, 0x16
or edi, ebx
mov ebx, edi
shl edi, 0xa
sub ebp, edi
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x64]
sar ebp, 0xa
shl ebp, 0xa
shr ebx, 0x16
or ebp, ebx
mov ebx, dword [esp + 0x70]
sub ebx, edi
mov ebx, dword [esp + 0x6c]
sbb ebx, ebp
mov ebp, dword [esp + 0x1084]
movzx edi, byte [edx + ebp]
test ebx, ebx
jne 0x4f5b6c
mov ebx, dword [esp + 0x68]
cmp eax, ebx
ja 0x4f5445
jmp 0x4f5b63
mov ebx, dword [esp + 0x58]
cmp ebx, 0x1000
ja 0x4f5b57
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x1088]
mov dword [esp], eax
lea ecx, [esp + 0x80]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x1000
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edx
call fcn.00487c70
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10c4], eax
mov dword [esp + 0x10c8], ecx
test edx, edx
jne 0x4f5792
mov eax, dword [esp + 0x48]
mov ecx, eax
add eax, 1
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x58]
mov ebp, edx
add edx, ebx
mov esi, dword [esp + 0x10bc]
add esi, ebx
mov edi, dword [esp + 0x10c0]
mov dword [esp + 0x10bc], esi
mov esi, dword [esp + 0x6c]
adc edi, esi
mov dword [esp + 0x10c0], edi
add ecx, 1
mov edi, dword [esp + 0x4c]
adc edi, 0
add ebp, ebx
mov ecx, dword [esp + 0x54]
adc ecx, esi
mov ebx, dword [esp + 0x1080]
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
cmp ecx, edi
sete cl
setg bl
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
cmp edx, eax
xchg ebp, ebx
setbe bl
xchg ebp, ebx
and ebp, ecx
or ebx, ebp
test bl, bl
je 0x4f5883
mov dword [esp + 0x4c], edi
test edi, edi
sete bl
cmp edx, 1
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4f5809
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ebx
mov eax, dword [esp + 0x1088]
mov dword [esp], eax
lea edx, [esp + 0x80]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x1000
mov dword [esp + 0xc], 0x1000
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], ebx
call fcn.00487700
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x10c4], eax
mov dword [esp + 0x10c8], edx
mov eax, dword [0x61e99c]
cmp dword [0x61e998], ebp
je 0x4f57c8
mov ebx, dword [esp + 0x10c4]
test ebx, ebx
jne 0x4f57ad
test ecx, ecx
je 0x4f57ad
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x1084]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x1080]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x78], eax
xor eax, eax
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x78]
jmp 0x4f5494
mov byte [esp + 0x25], 0
mov eax, dword [esp + 0x108c]
mov dword [esp], eax
call fcn.00488190
add esp, 0x1094
ret
mov byte [esp + 0x25], 0
mov eax, dword [esp + 0x108c]
mov dword [esp], eax
call fcn.00488190
add esp, 0x1094
ret
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.00403770
movzx eax, byte [esp + 0xc]
test al, al
je 0x4f5800
mov dword [esp + 0x10c4], 0
mov dword [esp + 0x10c8], 0
mov ecx, dword [esp + 0x58]
jmp 0x4f574c
mov ecx, dword [esp + 0x58]
jmp 0x4f574c
cmp edx, eax
sete bl
and ebx, ecx
test bl, bl
je 0x4f586a
mov ecx, dword [esp + 0x50]
mov ebx, ecx
add ecx, 0x1000
mov ebp, dword [esp + 0x54]
adc ebp, 0
mov esi, dword [esp + 0x44]
cmp esi, ebp
xchg ebp, ebx
setg bl
xchg ebp, ebx
sete al
mov edi, dword [esp + 0x40]
cmp edi, ecx
seta cl
and ecx, eax
or ecx, ebp
test cl, cl
je 0x4f585e
mov eax, edi
add edi, 0xfffff000
mov ecx, esi
adc esi, 0xffffffff
mov ecx, esi
mov ebx, edi
jmp 0x4f56de
mov eax, edi
mov ecx, esi
mov esi, dword [esp + 0x54]
mov edi, ebx
jmp 0x4f5855
mov ebp, dword [esp + 0x50]
add ebp, esi
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x54]
adc esi, ecx
mov ecx, esi
mov ebx, ebp
jmp 0x4f56de
mov byte [esp + 0x25], 0
mov eax, dword [esp + 0x108c]
mov dword [esp], eax
call fcn.00488190
add esp, 0x1094
ret
mov eax, dword [esp + 0x34]
mov edx, eax
shl eax, 0xc
mov ebx, dword [esp + 0x40]
mov ebp, ebx
sub ebx, eax
mov esi, edx
add edx, 0xffffffff
mov edi, ecx
shl ecx, 0xc
shr esi, 0x14
or esi, ecx
sub ebp, eax
mov eax, dword [esp + 0x44]
sbb eax, esi
mov dword [esp + 4], eax
mov dword [esp], ebx
mov eax, dword [esp + 0x34]
add eax, 0xffffffff
adc edi, 0xffffffff
mov dword [esp + 0xc], edi
mov dword [esp + 8], edx
call fcn.004529c0
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x1080]
jmp 0x4f541f
add esp, 0x1094
ret
cmp edx, 0x20000
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, ecx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4f596f
mov ecx, edx
add edx, 0
mov ebx, eax
adc eax, 0
shr edx, 0xc
mov ebp, eax
shl eax, 0x14
or eax, edx
cmp eax, 2
setb dl
sar ebp, 0xc
test ebp, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
xchg edi, ebx
setl bl
xchg edi, ebx
and esi, edx
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
je 0x4f5969
xor eax, eax
mov edx, 2
mov ecx, eax
mov ebx, edx
jmp 0x4f5231
mov edx, eax
mov eax, ebp
jmp 0x4f5960
cmp edx, 0x100000
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, ecx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4f5aff
cmp edx, 0xa00000
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, ecx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4f5ab3
cmp edx, 0x6400000
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, ecx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4f5a67
cmp edx, 0x40000000
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, ecx
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4f5a2e
add edx, 0
adc eax, 0
shr edx, 0xc
mov ebp, eax
shl eax, 0x14
or eax, edx
mov edx, eax
mov eax, 5
mul edx
sar ebp, 0xc
lea ebp, [ebp + ebp*4]
add edx, ebp
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x64
call fcn.004529c0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x44]
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x40]
jmp 0x4f5960
add edx, 0
adc eax, 0
mov ebp, eax
sar eax, 0xc
mov dword [esp + 4], eax
shr edx, 0xc
shl ebp, 0x14
or ebp, edx
mov dword [esp], ebp
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x64
call fcn.004529c0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x4f5a1d
add edx, 0
adc eax, 0
shr edx, 0xc
mov ebp, eax
shl eax, 0x14
or eax, edx
mov edx, eax
mov eax, 0xa
mul edx
sar ebp, 0xc
lea ebp, [ebp + ebp*4]
lea edx, [edx + ebp*2]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x64
call fcn.004529c0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x4f5a1d
add edx, 0
adc eax, 0
shr edx, 0xc
mov ebp, eax
shl eax, 0x14
or eax, edx
mov edx, eax
mov eax, 0x14
mul edx
sar ebp, 0xc
lea ebp, [ebp + ebp*4]
lea edx, [edx + ebp*4]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x64
call fcn.004529c0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x4f5a1d
add edx, 0
adc eax, 0
shr edx, 0xc
mov ebp, eax
shl eax, 0x14
or eax, edx
mov edx, eax
mov eax, 0x1e
mul edx
sar ebp, 0xc
imul ebp, ebp, 0x1e
add edx, ebp
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x64
call fcn.004529c0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x4f5a1d
add esp, 0x1094
ret
add esp, 0x1094
ret
mov ecx, ebx
mov edx, 0x1000
call fcn.0045a740
mov ecx, eax
mov eax, ebx
call fcn.0045a700
mov esi, ebx
mov ecx, eax
mov eax, dword [esp + 0x68]
call fcn.0045a7b0
mov eax, edx
mov ecx, ebx
call fcn.0045a700
mov esi, ebx
mov eax, edx
mov ecx, dword [esp + 0x3c]
call fcn.0045a7b0
mov eax, ebp
mov ecx, 0x1000
call fcn.0045a700
mov esi, ebx
mov eax, ebp
mov ecx, 0x1000
call fcn.0045a7b0
mov ecx, eax
mov eax, ebx
call fcn.0045a760
mov esi, ecx
mov edx, eax
mov eax, ebx
mov ecx, edx
call fcn.0045a830
mov ecx, eax
mov edx, edi
call fcn.0045a740
mov ecx, eax
mov edx, edi
call fcn.0045a810
mov ecx, eax
mov eax, edx
call fcn.0045a760
mov esi, ecx
mov ebx, eax
mov eax, edx
mov ecx, ebx
call fcn.0045a830
mov ecx, eax
mov edx, ebx
call fcn.0045a740
mov ecx, eax
mov edx, dword [esp + 0x10a0]
call fcn.0045a810
nop
call fcn.0042fb50
add esp, 0x1094
ret
call fcn.00459120
jmp fcn.004f5120