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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x20e0
call fcn.0063aac0
lea esi, [esp + 0x70]
mov ebx, edx
mov edi, ecx
add edx, 0xd58
mov ecx, esi
call fcn.004f0226
cmp dword [esi], 0
je 0x4f5bf3
mov dword [esp + 0x64], edi
xor ecx, ecx
mov edx, 0x9e95f9
cmp dword [esp + 0x7c], 0
mov esi, dword [esp + 0x78]
setne cl
push 0x9e9674
push 0x29
call fcn.004f3818
pop eax
pop ecx
mov eax, dword [ebx + 0xd50]
mov dword [esp], esi
mov ecx, 0
mov edx, 0
mov edi, ebx
mov dword [esp + 0x48], 0
mov dword [esp + 0x1c], edi
sub esi, eax
mov dword [esp + 0x10], eax
mov eax, 0
sbb eax, eax
mov dword [esp + 0x18], esi
sbb ecx, ecx
mov ebx, eax
sbb edx, edx
add esi, 0xffffffff
adc ebx, 0xffffffff
adc ecx, 0xffffffff
adc edx, 0xffffffff
cmp esi, 0xf
sbb ebx, 0
sbb ecx, 0
lea ecx, [edi + 0xd40]
sbb edx, 0
mov dword [esp + 4], ecx
jae 0x4f5bfb
lea ecx, [esp + 0xb0]
lea edx, [esp + 0x30]
mov ebx, eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], eax
mov dword [edx - 8], ecx
mov dword [edx - 4], 0x2000
and dword [edx], 0
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x34]
and dword [ecx], 0
mov ecx, ebx
xor eax, eax
mov dword [esp + 0x10], edx
mov dword [esp + 8], ebx
neg ecx
mov ecx, 0
sbb ecx, ecx
or ecx, edx
mov dword [esp + 0x4c], ecx
mov ecx, edx
or ecx, ebx
je 0x4f5b09
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov ecx, edi
mov dword [esp], esi
sub ecx, esi
cmp ecx, edx
mov edx, 0
sbb edx, ebx
jae 0x4f5a35
mov edi, dword [esp]
mov edx, dword [esp + 4]
lea ecx, [esp + 0x38]
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.004f3ecc
pop eax
pop ecx
mov al, byte [esp + 0x38]
cmp al, 4
je 0x4f5b19
lea edx, [esp + 0x39]
lea edi, [esp + 0x55]
mov ecx, dword [edx]
mov edx, dword [edx + 3]
mov dword [edi + 3], edx
mov dword [edi], ecx
jmp 0x4f5acc
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp]
mov dword [esp + 0x50], eax
mov dword [esp + 0x24], edx
push 0x9ebeb4
push edi
push eax
call fcn.004b2d6a
add esp, 0xc
mov ebx, dword [esp + 0x4c]
mov esi, edx
mov ecx, dword [esp]
cmp ebx, edx
mov edx, dword [esp + 0x50]
cmovb esi, ebx
push 0x9ebfc4
push edi
call fcn.00596326
pop ecx
pop ecx
mov edi, edx
xor ecx, ecx
mov edx, ebx
push 0x9ec690
push edi
push eax
call fcn.004b2d6a
add esp, 0xc
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
and dword [esp + 0x40], 0
mov edx, dword [esp + 4]
mov dword [esp + 0x44], esi
lea ecx, [esp + 0x68]
push 0
lea eax, [esp + 0x3c]
push eax
call fcn.004f3ecc
pop eax
pop ecx
mov al, byte [esp + 0x68]
cmp al, 4
je 0x4f5b23
lea edx, [esp + 0x69]
lea esi, [esp + 0x55]
mov ecx, dword [edx]
mov edx, dword [edx + 3]
mov dword [esi + 3], edx
mov dword [esi], ecx
lea ecx, [esp + 0x54]
mov byte [esp + 0x54], al
call fcn.0044ed78
mov ebx, dword [esp + 8]
cmp al, 0x23
jne 0x4f5c47
movsd xmm0, qword [esp + 0x54]
lea eax, [esp + 0x38]
movsd qword [esp + 0x38], xmm0
push eax
call fcn.004bd9e0
pop eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
jmp 0x4f59d6
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], 0
xor ebx, ebx
jmp 0x4f5b6e
mov ecx, dword [esp + 0x30]
mov eax, ecx
sub eax, edi
jmp 0x4f5b61
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
push 0x9ebeb4
push dword [esp + 0x40]
push dword [esp + 0x40]
call fcn.004b2d6a
add esp, 0xc
mov eax, dword [esp + 0x40]
mov ecx, dword [esp]
mov esi, dword [esp + 0x24]
add ecx, eax
cmp esi, ecx
mov dword [esp + 0x30], ecx
cmovbe esi, ecx
add edx, ecx
cmp esi, edx
cmova edx, esi
mov dword [esp + 0x34], edx
sub dword [esp + 0x10], eax
mov ebx, dword [esp + 8]
mov edx, ecx
sbb ebx, 0
xor ecx, ecx
push 0x9ebec4
push dword [esp + 0x30]
push dword [esp + 0x30]
call fcn.004b2d6a
add esp, 0xc
test edx, edx
je 0x4f6070
mov edx, dword [esp + 0x30]
mov edi, 0x9ebec4
xor ecx, ecx
push edi
push dword [esp + 0x30]
push dword [esp + 0x30]
call fcn.004b2d6a
add esp, 0xc
mov esi, edx
mov edx, dword [esp + 0x30]
xor ecx, ecx
push edi
push dword [esp + 0x30]
push dword [esp + 0x30]
call fcn.004b2d6a
add esp, 0xc
mov edi, edx
lea ecx, [esp + 0x38]
mov edx, eax
push edi
call fcn.004f3ea7
pop eax
mov al, byte [esp + 0x38]
cmp al, 4
jne 0x4f60a8
add dword [esp + 0xc], esi
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x30]
adc dword [esp + 0x48], 0
jmp 0x4f59b8
push 5
pop eax
jmp 0x4f6392
mov ecx, edi
mov edi, dword [esp]
cmp dword [esp + 0x10], edi
je 0x4f5c7b
mov edx, dword [esp + 4]
lea esi, [esp + 0xb0]
mov ecx, esi
push 0
push edi
push 0
push 0
call fcn.004f3e3e
add esp, 0x10
xor eax, eax
cmp dword [esi], eax
je 0x4f5f8f
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x1c]
cmp al, 4
je 0x4f5c7b
mov esi, dword [esp + 0xb8]
jmp 0x4f5f07
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x1c]
cmp al, 4
je 0x4f5c6b
mov eax, dword [esp + 0x5c]
cmp al, 4
jne 0x4f5f03
mov edi, dword [ecx + 0xd50]
add edi, dword [esp + 0x18]
mov dword [ecx + 0xd50], edi
lea edi, [ecx + 0xd38]
mov ecx, edi
call fcn.004f2627
mov ecx, dword [esp + 0x1c]
mov byte [ecx + 0xd38], 5
cmp byte [ecx + 0xd33], 0
je 0x4f5cf4
lea esi, [esp + 0xb0]
mov edx, edi
mov ecx, esi
call fcn.004f383d
mov eax, dword [esi]
cmp eax, 4
jne 0x4f5e9f
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0x1c]
test edx, edx
jns 0x4f5cf6
mov dword [esp + 0xb4], 2
and dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0x9eb498
mov dword [esp + 0xc0], 0x16
jmp 0x4f6359
xor edx, edx
mov eax, dword [ecx + 0xd28]
cmp eax, 4
jb 0x4f5d04
mov eax, dword [ecx + 8]
cmp edx, eax
jae 0x4f5ed5
mov dword [esp + 0x10], edx
push 0x9eb4b0
call fcn.004f3887
pop ecx
mov ebx, dword [eax + 0x434]
cmp byte [eax + 0x451], 2
mov esi, eax
jne 0x4f5f36
mov ecx, dword [esi + 0x43c]
call fcn.004b40a7
imul eax, dword [esi + 0x348]
imul eax, ebx
cmp byte [esi + 0x458], 0
mov ebx, eax
je 0x4f5f98
lea esi, [esp + 0xb0]
mov edx, edi
mov ecx, esi
call fcn.004f383d
mov esi, dword [esi]
cmp esi, 4
jne 0x4f6219
lea esi, [esp + 0xb0]
mov edx, edi
mov eax, dword [esi + 4]
mov ecx, esi
mov dword [esp + 8], eax
call fcn.004f3a9c
mov esi, dword [esi]
cmp esi, 4
jne 0x4f6219
lea esi, [esp + 0xb0]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
call fcn.004f3afe
mov ecx, esi
mov edx, edi
mov dword [esp], eax
call fcn.004f3a9c
mov esi, dword [esi]
cmp esi, 4
jne 0x4f6219
lea esi, [esp + 0xb0]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
call fcn.004f3afe
mov ecx, esi
mov edx, edi
mov dword [esp + 4], eax
call fcn.004f3a9c
mov esi, dword [esi]
cmp esi, 4
jne 0x4f6219
lea esi, [esp + 0xb0]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
call fcn.004f3afe
mov dword [esp + 0x18], eax
mov ecx, esi
mov edx, edi
push 0x1f
push 0x9eb458
push ebx
push dword [esp + 0xc]
call fcn.004f3b1f
add esp, 0x10
mov esi, dword [esi]
cmp esi, 4
jne 0x4f6219
lea esi, [esp + 0xb0]
mov eax, dword [esi + 4]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0xc], eax
mov ecx, esi
mov edx, edi
push 0x21
push 0x9eb477
push ebx
push 1
push 0x5fffa
push dword [esp + 0x18]
call fcn.004f3937
add esp, 0x18
mov esi, dword [esi]
cmp esi, 4
jne 0x4f639c
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0xb4]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0xb8]
test edi, edi
mov dword [esp + 4], eax
je 0x4f63cb
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x24], eax
push 2
pop eax
mov dword [esp], eax
jmp 0x4f620c
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xb4]
mov esi, dword [esp + 0xb8]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xbc], esi
jmp 0x4f6359
and dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0x9eb498
mov dword [esp + 0xc0], 0x16
mov dword [esp + 0xb4], 2
jmp 0x4f6359
mov esi, dword [esp + 0x60]
mov ecx, eax
movzx eax, al
lea edx, [esp + 0x38]
shrd ecx, esi, 8
shr esi, 8
shld esi, ecx, 8
shl ecx, 8
or ecx, eax
mov dword [edx + 4], esi
mov dword [edx], ecx
lea ecx, [esp + 0xb4]
call fcn.004b35e0
jmp 0x4f6359
mov eax, dword [esi + 0x44c]
imul eax, dword [esi + 0x448]
imul eax, ebx
cmp byte [esi + 0x458], 0
mov ebx, eax
je 0x4f6000
lea esi, [esp + 0xb0]
mov edx, edi
mov ecx, esi
call fcn.004f3d3b
cmp dword [esi], 0
je 0x4f60cc
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0xb8]
mov ecx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xbc]
jmp 0x4f622e
mov ecx, dword [esp + 0x1c]
jmp 0x4f5c75
lea esi, [esp + 0xb0]
mov edx, edi
mov ecx, esi
call fcn.004f383d
mov eax, dword [esi]
cmp eax, 4
jne 0x4f603a
lea esi, [esp + 0xb0]
mov eax, ebx
mov edx, edi
mov ebx, dword [esi + 4]
mov ecx, esi
push 0x1c
push 0x9eb43c
push eax
push eax
call fcn.004f38bc
add esp, 0x10
mov eax, dword [esi]
cmp eax, 4
jne 0x4f603a
mov eax, dword [esp + 0xbc]
mov edi, dword [esp + 0xb4]
mov esi, dword [esp + 0xb8]
mov dword [esp + 4], ebx
mov dword [esp], 0
jmp 0x4f62b0
lea esi, [esp + 0xb0]
mov edx, edi
mov ecx, esi
call fcn.004f3d3b
cmp dword [esi], 0
je 0x4f6248
mov esi, dword [esp + 0xb4]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
jmp 0x4f633d
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc0], esi
mov dword [esp + 0xb4], eax
jmp 0x4f6359
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0xc], eax
sbb dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x1c]
jae 0x4f5c6b
lea esi, [esp + 0x5c]
push 0x25
pop edx
mov ecx, esi
push 0x21
push 0x9eafec
call fcn.004bb657
pop eax
pop ecx
mov al, byte [esi]
jmp 0x4f5c57
movzx edx, byte [esp + 0x3f]
movzx ecx, word [esp + 0x3d]
mov esi, dword [esp + 0x39]
movzx eax, al
shl edx, 0x10
or ecx, edx
shld ecx, esi, 8
shl esi, 8
or eax, esi
jmp 0x4f5c4f
lea esi, [esp + 0xb0]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x4c], edx
mov edx, edi
mov dword [esp + 8], eax
mov dword [esp + 0x50], ecx
mov ecx, esi
call fcn.004f3a9c
mov esi, dword [esi]
cmp esi, 4
jne 0x4f6219
lea esi, [esp + 0xb0]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
call fcn.004f3afe
mov ecx, esi
mov edx, edi
mov dword [esp], eax
call fcn.004f3a9c
mov esi, dword [esi]
cmp esi, 4
jne 0x4f6219
lea esi, [esp + 0xb0]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
call fcn.004f3afe
mov ecx, esi
mov edx, edi
mov dword [esp + 4], eax
call fcn.004f3a9c
mov esi, dword [esi]
cmp esi, 4
jne 0x4f6219
lea esi, [esp + 0xb0]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
call fcn.004f3afe
mov dword [esp + 0x48], eax
mov ecx, esi
mov edx, edi
push 0x1a
push 0x9eb406
push ebx
push dword [esp + 0xc]
call fcn.004f3b1f
add esp, 0x10
mov esi, dword [esi]
cmp esi, 4
jne 0x4f6219
lea esi, [esp + 0xb0]
mov eax, dword [esi + 4]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0xc], eax
mov ecx, esi
mov edx, edi
push 0x1c
push 0x9eb420
push ebx
push 1
push 0x5fffa
push dword [esp + 0x18]
call fcn.004f3937
add esp, 0x18
mov esi, dword [esi]
cmp esi, 4
jne 0x4f639c
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0xb4]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0xb8]
test edi, edi
mov dword [esp + 4], eax
je 0x4f63cb
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x24], eax
push 3
pop eax
mov dword [esp], eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
jmp 0x4f62b0
mov edi, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0xb4], esi
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xb8], edi
jmp 0x4f6352
lea esi, [esp + 0xb0]
mov edx, edi
mov eax, dword [esi + 4]
mov ecx, esi
mov dword [esp + 4], eax
mov eax, dword [esi + 8]
mov dword [esp + 8], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], eax
mov eax, ebx
mov ebx, dword [esi + 0x10]
push 0x17
push 0x9eb3ef
push eax
push eax
call fcn.004f38bc
add esp, 0x10
mov esi, dword [esi]
cmp esi, 4
jne 0x4f631e
mov edi, dword [esp + 0xb4]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0xbc]
test edi, edi
je 0x4f6335
xor ecx, ecx
inc ecx
mov dword [esp], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0xb8], esi
mov esi, dword [esp + 4]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xd8], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xb4], edi
mov dword [esp + 0xc8], esi
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], edx
mov dword [esp + 0xe0], ecx
jmp 0x4f635f
mov eax, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
jmp 0x4f633d
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ecx
push 4
pop eax
mov dword [esp], eax
lea esi, [esp + 0xb4]
push 0xc
pop eax
lea edx, [esp + 0x80]
mov ecx, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov esi, edx
mov ebx, dword [esp + 0x64]
lea edi, [ebx + 4]
rep movsd dword es:[edi], dword [esi]
mov edi, ebx
mov eax, dword [esp + 0x1c]
inc dword [eax + 0xd74]
mov eax, dword [esp]
mov dword [edi], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 8], eax
call fcn.004bd77e
mov ecx, dword [esp + 8]
jmp 0x4f622e
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 4]
jmp 0x4f622e