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

Disassembly:
sub esp, 0x8c
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x84], edi
mov edi, 0x70
mov dword [esp + 0x88], ebp
xor ebp, ebp
mov dword [esp + 0x7c], ebx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x80], esi
mov dword [esp + 0x6c], edx
mov edx, dword [eax + 0x154]
mov dword [esp + 0x78], ebp
mov dword [esp + 0x74], edi
mov dword [esp + 0x64], edx
sub edx, 0xffffff80
cmp dword [eax], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], edx
jl 0xa05f08
cmp dword [eax + 4], ecx
jg 0xa05f08
mov ebx, dword [esp + 0x6c]
cmp dword [eax + 8], ebx
jl 0xa05f08
cmp dword [eax + 0xc], ebx
jg 0xa05f08
mov edi, dword [eax + 0xdc]
test edi, edi
jne 0xa05f28
mov esi, dword [esp + 0x68]
mov edx, ecx
mov eax, ebx
and edx, 1
and eax, 1
add edx, edx
mov ebp, dword [esi + 0xd0]
or edx, eax
mov eax, ebx
sar eax, 1
mov ebx, dword [esp + 0x70]
sar ecx, 1
imul eax, ebp
mov dword [esp + 0x4c], ebx
lea eax, [ecx + eax]
mov ecx, dword [esi + edx*4 + 0xa0]
add esi, 0x24
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x6c]
add eax, ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x48], esi
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 0xd4]
mov ecx, dword [eax + 0xd8]
mov ebx, dword [eax + 0x98]
mov esi, dword [eax + 0x9c]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x6c]
xor ecx, edi
shl eax, cl
shl edx, cl
sub eax, ebx
mov dword [esp + 0x18], edx
je 0xa05fdc
mov edi, dword [esp + 0x44]
cdq
mov ecx, dword [esp + 0x44]
xor eax, edx
sub edx, eax
dec ecx
mov eax, edx
mov dword [esp + 0x40], ecx
sar eax, cl
mov edx, dword [eax*4 + 0xd78180]
add edi, edx
sub dword [esp + 0x18], esi
je 0xa05930
mov esi, dword [esp + 0x44]
add edi, esi
movzx ecx, byte [esp + 0x40]
mov eax, dword [esp + 0x18]
cdq
xor eax, edx
sub edx, eax
sar edx, cl
mov dword [esp + 0x18], edx
mov ebx, dword [edx*4 + 0xd78180]
xor ecx, ecx
mov dword [esp + 0x50], ecx
add edi, ebx
shl edi, 4
add edi, 0x30
mov dword [esp + 0x5c], edi
lea esi, [esi]
lea edi, [edi]
mov dword [esp + 0xc], ebp
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x68]
sar edx, 1
imul edx, ebp
and eax, 1
add eax, edx
mov edx, dword [esp + 0x54]
shl eax, 3
add edx, eax
mov dword [esp + 8], edx
mov edx, dword [esi + 0xb8]
add eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call dword [0x1319d40]
mov edx, dword [esi + 0x154]
mov ecx, dword [esi + 0x15c]
mov eax, dword [esp + 0x50]
add edx, 0x100
mov ebp, dword [esi + 0x158]
mov ebx, dword [esi + 0x168]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x38], ecx
mov esi, dword [edx + eax*4 + 0x170]
mov ecx, dword [edx + 0x188]
mov eax, dword [esp + 0x64]
mov edi, dword [edx + 0x16c]
mov dword [esp + 0x34], ecx
mov dword [esp], eax
call dword [0x1319c50]
mov eax, dword [esp + 0x38]
test eax, eax
je 0xa05f98
mov dword [esp + 0xc], edi
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov dword [esp + 8], ebp
mov dword [esp + 4], edx
mov dword [esp], ecx
call dword [0x1319c80]
cmp eax, 2
jg 0xa05a48
mov ecx, dword [esp + 0x60]
cmp word [ecx + 2], 0
jne 0xa05a48
cmp word [ecx + 0x10], 0
jne 0xa05a48
cmp word [ecx], 0
je 0xa0606b
lea esi, [esi]
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x50]
mov ecx, 5
mov ebx, dword [esp + 0x60]
sub ecx, eax
mov eax, 1
mov dword [esp], ebx
shl eax, cl
or dword [esp + 0x78], eax
call fcn.009e2698
mov ebx, eax
mov eax, dword [esp + 0x74]
shl ebx, 4
add ebx, eax
xor eax, eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0xa05fba
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [0x1319c90]
mov edx, dword [esp + 0x3c]
mov eax, 0x10
mov ecx, dword [esp + 0x64]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call dword [0x1319c30]
xor edx, edx
imul esi, eax
mov eax, esi
div dword [esp + 0x34]
mov edx, dword [esp + 0x68]
add eax, ebx
add dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x5c]
cmp dword [edx + 0x10], ecx
jle 0xa05f08
inc dword [esp + 0x50]
cmp dword [esp + 0x50], 3
jg 0xa05b02
mov ebx, dword [esp + 0x68]
mov ebp, dword [ebx + 0xd0]
jmp 0xa05968
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x4c]
and eax, 3
mov ebx, dword [eax*4 + 0xd77de0]
sar edx, 1
mov eax, dword [esp + 0x48]
add edx, ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x4c], edx
and eax, 3
mov edx, dword [esp + 0x48]
mov ecx, dword [eax*4 + 0xd77de0]
mov ebp, dword [ebx + 0xd0]
mov eax, dword [esp + 0x68]
sar edx, 1
mov edi, dword [ebx + 0xc4]
add edx, ecx
mov dword [esp + 0x48], edx
mov ebx, ebp
mov esi, dword [eax + 0x94]
mov eax, edx
shr ebx, 1
sar eax, 1
imul eax, ebx
mov edx, dword [esp + 0x4c]
sar edx, 1
lea ecx, [eax + edx]
mov edx, dword [esp + 0x68]
mov eax, dword [edx + 0xb0]
mov edx, dword [esp + 0x4c]
add ecx, eax
mov eax, dword [esp + 0x48]
and edx, 1
and eax, 1
lea eax, [eax + edx*2]
cmp eax, 1
je 0xa0609a
jle 0xa0608b
cmp eax, 2
je 0xa060b4
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp], edi
call dword [0x1319e20]
mov ecx, dword [esp + 0x68]
mov edx, edi
mov ebp, dword [ecx + 0xd0]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x68]
shr ebp, 1
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x64]
mov eax, dword [ebx + 0xbc]
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [0x1319d40]
mov eax, dword [ebx + 0x154]
mov edx, dword [ebx + 0x15c]
mov ecx, dword [esp + 0x68]
add eax, 0x100
mov ebp, dword [ebx + 0x158]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x188]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x64]
mov ebx, dword [ecx + 0x168]
mov dword [esp + 0x28], eax
mov esi, dword [ecx + 0x180]
mov edi, dword [ecx + 0x16c]
mov dword [esp], edx
call dword [0x1319c50]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0xa05fe3
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov dword [esp + 8], ebp
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [0x1319c80]
cmp eax, 2
jg 0xa05c75
mov eax, dword [esp + 0x60]
cmp word [eax + 2], 0
jne 0xa05c75
cmp word [eax + 0x10], 0
jne 0xa05c75
cmp word [eax], 0
je 0xa060fb
or dword [esp + 0x78], 2
mov edx, dword [esp + 0x60]
mov dword [esp + 4], ebx
mov dword [esp], edx
call fcn.009e2698
mov ebx, eax
mov eax, dword [esp + 0x74]
shl ebx, 4
add ebx, eax
xor eax, eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0xa06005
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x30]
mov dword [esp + 8], ebp
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [0x1319c90]
mov eax, dword [esp + 0x30]
mov ecx, 0x10
mov edx, dword [esp + 0x64]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [0x1319c30]
xor edx, edx
imul esi, eax
mov eax, esi
div dword [esp + 0x28]
add eax, ebx
mov ebx, dword [esp + 0x68]
add dword [esp + 0x5c], eax
mov esi, dword [esp + 0x5c]
cmp dword [ebx + 0x10], esi
jle 0xa05f08
mov eax, dword [esp + 0x68]
mov ebp, dword [ebx + 0xd0]
mov edi, dword [ebx + 0xc4]
mov eax, dword [eax + 0x94]
mov ebx, ebp
mov edx, dword [esp + 0x4c]
and dword [esp + 0x4c], 1
shr ebx, 1
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
sar edx, 1
and dword [esp + 0x48], 1
sar eax, 1
mov esi, dword [esp + 0x4c]
imul eax, ebx
lea edx, [eax + edx]
mov eax, dword [ecx + 0xb4]
mov ecx, dword [esp + 0x48]
add edx, eax
lea eax, [ecx + esi*2]
cmp eax, 1
je 0xa060dd
jle 0xa060ce
cmp eax, 2
je 0xa0611b
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x14]
mov dword [esp + 4], edx
mov dword [esp], edi
mov dword [esp + 0xc], ecx
call dword [0x1319e20]
mov ebx, dword [esp + 0x68]
mov ecx, edi
mov ebp, dword [ebx + 0xd0]
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x68]
shr ebp, 1
mov dword [esp + 0xc], ebp
mov eax, dword [esi + 0xc0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call dword [0x1319d40]
mov edx, dword [esi + 0x154]
mov ecx, dword [esi + 0x15c]
mov eax, dword [esp + 0x68]
add edx, 0x100
mov ebp, dword [esi + 0x158]
mov ebx, dword [esi + 0x168]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 0x188]
mov esi, dword [eax + 0x184]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x64]
mov edi, dword [eax + 0x16c]
mov dword [esp + 0x1c], edx
mov dword [esp], ecx
call dword [0x1319c50]
mov eax, dword [esp + 0x20]
test eax, eax
je 0xa06027
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [0x1319c80]
cmp eax, 2
jg 0xa05e4e
mov edx, dword [esp + 0x60]
cmp word [edx + 2], 0
jne 0xa05e4e
cmp word [edx + 0x10], 0
jne 0xa05e4e
cmp word [edx], 0
je 0xa06139
or dword [esp + 0x78], 1
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], ebx
mov dword [esp], ecx
call fcn.009e2698
mov ebx, eax
mov eax, dword [esp + 0x74]
shl ebx, 4
add ebx, eax
xor eax, eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0xa06049
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x24]
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [0x1319c90]
mov ecx, 0x10
mov edx, dword [esp + 0x24]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 4], edx
mov dword [esp], ecx
call dword [0x1319c30]
xor edx, edx
imul esi, eax
mov eax, esi
div dword [esp + 0x1c]
mov edx, dword [esp + 0x68]
add eax, ebx
add dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x5c]
cmp dword [edx + 0x10], ecx
jle 0xa05f08
mov dword [edx + 0x10], ecx
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x70]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x94]
mov dword [ebx], esi
mov dword [edx + 0x84], eax
mov eax, dword [esp + 0x78]
mov dword [edx + 0x160], eax
lea esi, [esi]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
mov ebp, dword [esp + 0x88]
add esp, 0x8c
ret
mov ecx, dword [esp + 0x70]
xor esi, esi
mov eax, dword [esp + 0x68]
mov dword [esp + 8], esi
mov edx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 4], edx
call fcn.00a03a08
mov dword [esp + 0x54], eax
mov ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
add ebx, 0x4c
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x70]
shr eax, 0x1f
mov edi, dword [esi + 0xdc]
add eax, ebx
mov ebp, dword [esi + 0xd0]
sar eax, 1
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x6c]
shr eax, 0x1f
add eax, ecx
sar eax, 1
mov dword [esp + 0x48], eax
jmp 0xa058cb
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [0x1319cb0]
jmp 0xa05a23
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], ebp
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [0x1319ca0]
jmp 0xa05aa8
xor edi, edi
jmp 0xa05909
mov dword [esp + 0xc], edi
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov dword [esp + 8], ebp
mov dword [esp + 4], edx
mov dword [esp], ecx
call dword [0x1319cb0]
jmp 0xa05c54
mov dword [esp + 0xc], edi
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x30]
mov dword [esp + 8], ebp
mov dword [esp + 4], edx
mov dword [esp], ecx
call dword [0x1319ca0]
jmp 0xa05cc4
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov dword [esp + 8], ebp
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [0x1319cb0]
jmp 0xa05e2d
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x24]
mov dword [esp + 8], ebp
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [0x1319ca0]
jmp 0xa05e9d
mov eax, dword [esp + 0x64]
mov ebp, 0x10
mov edi, 0xd781a0
mov dword [esp + 8], ebp
xor ebx, ebx
mov dword [esp + 4], edi
mov dword [esp], eax
jmp 0xa05ac0
test eax, eax
mov edx, ecx
je 0xa05bba
jmp 0xa05b99
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp], edi
call dword [0x1319d90]
jmp 0xa05bae
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp], edi
call dword [0x1319e50]
jmp 0xa05bae
test eax, eax
mov ecx, edx
je 0xa05d92
jmp 0xa05d6d
mov dword [esp + 8], ebx
mov esi, dword [esp + 0x14]
mov dword [esp + 4], edx
mov dword [esp], edi
mov dword [esp + 0xc], esi
call dword [0x1319d90]
jmp 0xa05d86
mov ecx, dword [esp + 0x64]
mov edx, 0x10
mov eax, 0xd781a0
mov dword [esp + 8], edx
xor ebx, ebx
mov dword [esp + 4], eax
mov dword [esp], ecx
jmp 0xa05cdc
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 4], edx
mov dword [esp], edi
mov dword [esp + 0xc], eax
call dword [0x1319e50]
jmp 0xa05d86
mov eax, 0xd781a0
mov edx, 0x10
xor ebx, ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], edx
mov dword [esp], eax
jmp 0xa05eb5