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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff84
mov dword [esp], edx
mov ebx, eax
lea edx, [esp + 0x38]
mov ecx, 0x30
mov eax, dword [ebx]
call fcn.005ef174
push 4
lea eax, [esp + 0x14]
push eax
push 0
lea eax, [esp + 0x20]
push eax
push 0
mov ecx, dword [0x66d2f8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x74]
mov eax, ebx
call fcn.004b30c0
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5f14c2
push 4
lea eax, [esp + 0x3c]
push eax
push 0x30
lea eax, [esp + 0x14]
push eax
mov ecx, dword [0x66d2f8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x74]
mov eax, ebx
call fcn.005eca4c
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x5f1535
mov eax, 0x8005
jmp 0x5f1912
mov dword [esp + 0x6c], 0x30
lea eax, [esp + 0x38]
mov dword [esp + 0x68], eax
mov byte [esp + 0x78], 1
xor eax, eax
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x74], eax
push 0
push 0
lea ecx, [esp + 0x70]
mov edx, dword [esp + 0x10]
mov eax, ebx
call fcn.005ec818
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
jne 0x5f1508
cmp dword [esp + 0x6c], 0x30
je 0x5f1512
mov eax, 0x8005
jmp 0x5f1912
push 0
push 0x30
mov edx, dword [esp + 0x10]
mov eax, ebx
call fcn.005ec274
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x5f1535
mov eax, dword [esp + 0x14]
jmp 0x5f1912
xor eax, eax
mov dword [esp + 0x18], eax
push 4
lea eax, [esp + 0x14]
push eax
mov ecx, dword [0x66d2f8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x78]
mov eax, ebx
call fcn.004b01c4
mov esi, eax
test esi, esi
je 0x5f18e9
push 4
lea eax, [esp + 0x14]
push eax
push 0
lea eax, [esp + 0x20]
push eax
push 0
mov ecx, dword [0x66d2f8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x78]
mov eax, ebx
call fcn.004b30c0
mov esi, eax
test esi, esi
jne 0x5f158f
mov eax, dword [esp + 0x14]
jmp 0x5f1912
cmp dword [esi + 0x30], 0
jne 0x5f159d
cmp dword [esi + 0x2c], 0
jae 0x5f160a
jmp 0x5f159f
jge 0x5f160a
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
neg eax
adc edx, 0
neg edx
call fcn.00405210
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], 0
jbe 0x5f15d8
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
sub eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
push edx
push eax
mov eax, dword [esp + 0x30]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.0040517c
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x5f1644
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
call fcn.00405210
mov dword [esp + 0x20], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
call fcn.0040517c
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
xor edx, edx
push edx
push eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
call fcn.00405158
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], edx
push 4
lea eax, [esp + 0x14]
push eax
push 0
lea eax, [esp + 0x20]
push eax
push 0
mov ecx, dword [0x66d2f8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x7c]
mov eax, ebx
call fcn.004b30c0
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
jne 0x5f17bb
cmp dword [esi + 0x30], 0
jne 0x5f16a2
cmp dword [esi + 0x2c], 0
jae 0x5f170f
jmp 0x5f16a4
jge 0x5f170f
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
neg eax
adc edx, 0
neg edx
call fcn.00405210
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], 0
jbe 0x5f16dd
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
sub eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
push edx
push eax
mov eax, dword [esp + 0x30]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.0040517c
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
jmp 0x5f1749
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
call fcn.00405210
mov dword [esp + 0x20], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
call fcn.0040517c
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add eax, 7
adc edx, 0
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x6c], ecx
test ecx, ecx
jne 0x5f176c
mov dword [esp + 0x6c], 8
mov eax, dword [esp + 0x6c]
call fcn.0040d864
mov dword [esp + 4], eax
push 4
mov eax, dword [esp + 8]
push eax
mov eax, dword [esp + 0x74]
push eax
lea eax, [esp + 0x18]
push eax
mov ecx, dword [0x66d2f8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x7c]
mov eax, ebx
call fcn.005eca4c
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x5f17b0
mov eax, dword [esp + 0x14]
jmp 0x5f1912
lea eax, [esp + 4]
call fcn.0040d7e8
jmp 0x5f182d
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x2c]
call fcn.0040d7d8
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x68], eax
mov byte [esp + 0x78], 1
xor eax, eax
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 4]
xor ecx, ecx
mov edx, dword [esp + 0x6c]
call fcn.004032f4
push 0
push 0
lea ecx, [esp + 0x70]
mov edx, dword [esp + 0x14]
mov eax, ebx
call fcn.005ec818
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x5f1824
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
lea eax, [esp + 4]
call fcn.0040d7e8
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
call fcn.0040d864
mov dword [esp + 0x1c], eax
xor edi, edi
xor ebp, ebp
jmp 0x5f18c7
mov eax, ebp
cdq
push edx
push eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x90]
mov ecx, dword [ebx]
mov eax, dword [esp + 0x24]
call fcn.005eeb4c
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x68], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
mov dword [esp + 0x6c], eax
mov byte [esp + 0x78], 1
xor eax, eax
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x74], eax
mov eax, edi
cdq
push edx
push eax
lea ecx, [esp + 0x70]
mov edx, esi
mov eax, ebx
call fcn.005ec818
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
jne 0x5f18b7
mov eax, dword [ebx]
mov eax, dword [eax + 0x90]
cmp eax, dword [esp + 0x6c]
je 0x5f18b7
mov dword [esp + 0x14], 0x8005
mov eax, dword [ebx]
add ebp, dword [eax + 0x98]
mov eax, dword [ebx]
add edi, dword [eax + 0x90]
mov eax, edi
cdq
cmp edx, dword [esi + 0x30]
jne 0x5f18da
cmp eax, dword [esi + 0x2c]
jb 0x5f1847
jmp 0x5f18e0
jl 0x5f1847
lea eax, [esp + 0x1c]
call fcn.0040d7e8
mov edx, dword [esp]
mov eax, ebx
call fcn.005f1030
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x18]
or word [eax + 0x16], 2
cmp dword [esp + 0x14], 0
je 0x5f190e
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add esp, 0x7c
pop ebp
pop edi
pop esi
pop ebx
ret