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

Disassembly:
sub esp, 0x34
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [eax + 0xc]
push ebx
push ebp
shl ecx, 0x10
push esi
mov esi, dword [eax + 0x38]
mov dword [esp + 0x38], ecx
mov eax, dword [edx + 0xec]
shl eax, 0x10
mov dword [esp + 0x3c], eax
mov al, byte [0x680ed1]
test al, al
push edi
mov dword [esp + 0x10], esi
je 0x5a1254
lea ecx, [esp + 0x3c]
push ecx
lea eax, [esi + 0x24]
call fcn.0059865c
add esp, 4
jmp 0x5a1268
lea edx, [esp + 0x3c]
push edx
mov eax, edx
push eax
lea ecx, [esi + 0x24]
push ecx
call fcn.005755dc
add esp, 0xc
mov ecx, dword [esi + 0x64]
mov bl, byte [esi + 2]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 0x68]
mov dword [esp + 0x14], ecx
mov cl, bl
and cl, 2
mov ebp, eax
mov edi, edx
je 0x5a129c
mov ebp, dword [esi + 0x90]
mov edi, dword [esi + 0x94]
add ebp, eax
add edi, edx
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 0x78]
mov eax, dword [edx + 0x7c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
shl esi, 0x10
shl eax, 0x10
dec esi
dec eax
mov dword [esp + 0x28], eax
test byte [edx], 1
mov dword [esp + 0x34], esi
je 0x5a15e5
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov edx, dword [edx + 4]
sub eax, esi
test cl, cl
mov dword [esp + 0x24], edx
je 0x5a1460
mov ebx, dword [esp + 0x54]
dec eax
mov ecx, eax
imul eax, dword [esp + 0x14]
imul ecx, dword [esp + 0x18]
add ecx, ebp
add eax, edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov eax, ebp
mov ecx, edi
sar eax, 0x10
sar ecx, 0x10
test eax, eax
jle 0x5a1321
test ecx, ecx
jle 0x5a1321
mov esi, dword [esp + 0x1c]
dec esi
cmp eax, esi
jge 0x5a1321
mov esi, dword [esp + 0x20]
dec esi
cmp ecx, esi
jl 0x5a1394
mov esi, dword [esp + 0x50]
cmp dword [esp + 0x4c], esi
jge 0x5a1394
mov esi, dword [esp + 0x10]
test byte [esi + 2], 1
je 0x5a1352
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0x78]
push eax
mov ecx, esi
add ecx, 0x60
push ecx
push ebx
push edi
push ebp
mov ecx, edx
call fcn.005ad7fc
jmp 0x5a135c
push ebx
push ecx
push eax
mov ecx, edx
call fcn.005acefc
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x54]
test eax, eax
je 0x5a1373
push 1
push ebx
push eax
call fcn.0059ad3c
add esp, 0xc
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
add edi, edx
mov edx, dword [esp + 0x24]
add ebp, esi
inc ecx
mov dword [esp + 0x4c], ecx
add ebx, 8
jmp 0x5a12fd
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x54], ebx
lea esi, [ebx + eax*8 - 8]
mov ebx, dword [esp + 0x10]
lea esp, [esp]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
sar eax, 0x10
sar ecx, 0x10
test eax, eax
jle 0x5a13d8
test ecx, ecx
jle 0x5a13d8
mov edx, dword [esp + 0x1c]
dec edx
cmp eax, edx
jge 0x5a13d8
mov edx, dword [esp + 0x20]
dec edx
cmp ecx, edx
jl 0x5a1623
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x4c], edx
jge 0x5a1768
test byte [ebx + 2], 1
mov dword [esp + 0x38], esi
je 0x5a1415
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x78]
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x30]
lea eax, [ebx + 0x60]
push eax
push esi
push ecx
mov ecx, dword [esp + 0x34]
push edx
call fcn.005ad7fc
jmp 0x5a1421
push esi
push ecx
mov ecx, dword [esp + 0x2c]
push eax
call fcn.005acefc
dec dword [esp + 0x50]
mov eax, dword [ebx + 0x54]
sub esi, 8
test eax, eax
je 0x5a143f
mov ecx, dword [esp + 0x38]
push 1
push ecx
push eax
call fcn.0059ad3c
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
sub eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
sub ecx, eax
mov dword [esp + 0x30], ecx
jmp 0x5a13ac
test bl, 1
je 0x5a1477
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
dec esi
dec ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x54]
mov ecx, eax
imul eax, dword [esp + 0x14]
imul ecx, dword [esp + 0x18]
add ecx, ebp
add eax, edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], eax
mov eax, ebp
mov ecx, edi
sar eax, 0x10
sar ecx, 0x10
test eax, eax
jl 0x5a14b1
test ecx, ecx
jl 0x5a14b1
cmp eax, dword [esp + 0x1c]
jge 0x5a14b1
cmp ecx, dword [esp + 0x20]
jl 0x5a151e
mov ebx, dword [esp + 0x4c]
cmp ebx, dword [esp + 0x50]
jge 0x5a151e
mov ebx, dword [esp + 0x10]
test byte [ebx + 2], 1
je 0x5a14dc
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 0x78]
push ecx
push esi
push edi
push ebp
mov ecx, edx
call fcn.005ad07c
jmp 0x5a14e6
push esi
push ecx
push eax
mov ecx, edx
call fcn.005acefc
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x54]
test eax, eax
je 0x5a14fd
push 1
push esi
push eax
call fcn.0059ad3c
add esp, 0xc
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
add edi, edx
mov edx, dword [esp + 0x24]
add ebp, ebx
inc ecx
mov dword [esp + 0x4c], ecx
add esi, 8
jmp 0x5a1493
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
sub eax, ecx
mov dword [esp + 0x54], esi
lea esi, [esi + eax*8 - 8]
jmp 0x5a153c
mov ecx, dword [esp + 0x30]
mov eax, ebx
sar eax, 0x10
sar ecx, 0x10
test eax, eax
jl 0x5a1560
test ecx, ecx
jl 0x5a1560
cmp eax, dword [esp + 0x1c]
jge 0x5a1560
cmp ecx, dword [esp + 0x20]
jl 0x5a1623
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x4c], edx
jge 0x5a1768
mov edx, dword [esp + 0x10]
test byte [edx + 2], 1
mov dword [esp + 0x38], esi
je 0x5a1599
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x78]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
push edx
push esi
push eax
push ebx
call fcn.005ad07c
jmp 0x5a15a5
push esi
push ecx
mov ecx, dword [esp + 0x2c]
push eax
call fcn.005acefc
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
dec eax
mov dword [esp + 0x50], eax
mov eax, dword [ecx + 0x54]
sub esi, 8
test eax, eax
je 0x5a15cc
mov edx, dword [esp + 0x38]
push 1
push edx
push eax
call fcn.0059ad3c
add esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
sub ebx, edx
sub ecx, eax
mov dword [esp + 0x30], ecx
jmp 0x5a153c
test ebp, ebp
jl 0x5a15ed
cmp ebp, esi
jl 0x5a1602
mov eax, ebp
cdq
idiv esi
test ebp, ebp
jge 0x5a15f7
dec eax
imul eax, esi
sub ebp, eax
cmp ebp, esi
jne 0x5a1602
xor ebp, ebp
test edi, edi
mov ecx, dword [esp + 0x28]
jl 0x5a160e
cmp edi, ecx
jl 0x5a1623
mov eax, edi
cdq
idiv ecx
test edi, edi
jge 0x5a1618
dec eax
imul eax, ecx
sub edi, eax
cmp edi, ecx
jne 0x5a1623
xor edi, edi
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
cmp edx, esi
jge 0x5a1768
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x14]
sub esi, edx
test ecx, ecx
jle 0x5a1670
cmp ebp, eax
jl 0x5a1652
lea ecx, [ecx]
sub ebp, eax
cmp ebp, eax
jge 0x5a164c
cmp ecx, 0x20000
jg 0x5a1665
mov edx, esi
imul edx, ecx
add edx, ebp
cmp edx, eax
jl 0x5a16a3
sub eax, ebp
lea eax, [eax + ecx - 1]
cdq
idiv ecx
jmp 0x5a169d
jge 0x5a16a3
test ebp, ebp
jg 0x5a1682
lea ebx, [ebx]
add ebp, eax
test ebp, ebp
jle 0x5a167c
cmp ecx, 0xfffe0000
jl 0x5a1693
mov eax, esi
imul eax, ecx
add eax, ebp
jns 0x5a16a3
mov eax, ebp
sub eax, ecx
dec eax
cdq
idiv ecx
neg eax
cmp esi, eax
jle 0x5a16a3
mov esi, eax
test ebx, ebx
jle 0x5a16d7
mov eax, dword [esp + 0x28]
cmp edi, eax
jl 0x5a16b5
sub edi, eax
cmp edi, eax
jge 0x5a16af
cmp ebx, 0x20000
jg 0x5a16c8
mov ecx, esi
imul ecx, ebx
add ecx, edi
cmp ecx, eax
jl 0x5a1708
mov edx, dword [esp + 0x28]
sub edx, edi
lea eax, [edx + ebx - 1]
cdq
idiv ebx
jmp 0x5a1702
jge 0x5a1708
test edi, edi
jg 0x5a16e7
mov eax, dword [esp + 0x28]
add edi, eax
test edi, edi
jle 0x5a16e1
cmp ebx, 0xfffe0000
jl 0x5a16f8
mov eax, esi
imul eax, ebx
add eax, edi
jns 0x5a1708
mov eax, edi
sub eax, ebx
dec eax
cdq
idiv ebx
neg eax
cmp esi, eax
jle 0x5a1708
mov esi, eax
test esi, esi
jle 0x5a1768
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
push ebx
push esi
lea ecx, [esp + 0x44]
push ecx
lea edx, [eax + 0x60]
push edx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], edi
call dword [eax + 0x58]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x54]
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
add esp, 0x10
test eax, eax
je 0x5a174b
push esi
push ebx
push eax
call fcn.0059ad3c
add esp, 0xc
mov edx, dword [esp + 0x4c]
add edx, esi
lea ecx, [ebx + esi*8]
mov esi, dword [esp + 0x50]
cmp edx, esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x54], ecx
jl 0x5a1633
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret