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

Disassembly:
push 0xffffffffffffffff
push 0x87e8c5
mov eax, dword fs:[0]
push eax
sub esp, 0x138
mov eax, dword [0x8ce6f4]
xor eax, esp
mov dword [esp + 0x134], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x8ce6f4]
xor eax, esp
push eax
lea eax, [esp + 0x14c]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x90], ebx
lea eax, [esp + 0x15c]
xor esi, esi
push eax
mov dword [esp + 0x158], esi
call fcn.00655860
lea ecx, [esp + 0xa8]
call fcn.007e4ad5
push 0x40dd04
lea ecx, [esp + 0x160]
push ecx
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x160], 1
call fcn.004af3d0
add esp, 0xc
mov eax, dword [eax]
push esi
push 0x5021
push eax
lea ecx, [esp + 0xb4]
mov byte [esp + 0x160], 2
call fcn.007e49b8
test eax, eax
mov eax, dword [esp + 0x18]
sete byte [esp + 0x17]
add eax, 0xfffffff0
or edi, 0xffffffff
mov byte [esp + 0x154], 1
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x655b06
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
je 0x655b4f
lea ecx, [esp + 0xa8]
mov byte [esp + 0x154], 0
call fcn.007e4df4
mov eax, dword [esp + 0x15c]
add eax, 0xfffffff0
mov dword [esp + 0x154], edi
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jg 0x655b48
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x6564c2
mov dword [ebx + 0xe0], edi
mov dword [ebx + 0xdc], edi
mov dword [esp + 0x20], esi
push 0x32a00
lea ecx, [esp + 0x24]
mov byte [esp + 0x158], 3
call fcn.004cd4f0
test al, al
jne 0x655bc8
mov ecx, dword [esp + 0x20]
push ecx
call fcn.007c8563
add esp, 4
lea ecx, [esp + 0xa8]
mov byte [esp + 0x154], 0
call fcn.007e4df4
mov eax, dword [esp + 0x15c]
add eax, 0xfffffff0
mov dword [esp + 0x154], edi
lea edx, [eax + 0xc]
lock xadd dword [edx], edi
dec edi
test edi, edi
jg 0x655b48
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x6564c2
mov eax, dword [ebx + 0x140]
add eax, 0xc
lea ecx, [eax*8]
sub ecx, eax
lea eax, [ebx + ecx*4]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x30], esi
cmp dword [eax + 4], esi
jbe 0x656478
mov edi, edi
mov edx, dword [esp + 0x30]
push 0xffffffffffffffff
push edx
mov ecx, ebx
call fcn.006540f0
test al, al
je 0x65645f
xor edx, edx
mov esi, 2
mov ebp, 3
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], 1
mov dword [esp + 0x100], esi
mov dword [esp + 0x104], ebp
xor edi, edi
cmp edi, 4
je 0x655c4b
test byte [ebx + edi + 0x108], 0xf0
je 0x655c4b
inc edi
cmp edi, 5
jl 0x655c34
jmp 0x655c9e
mov ecx, dword [esp + 0x20]
and edi, ebp
mov eax, edi
shl eax, 4
push 0x32a00
or eax, edi
push eax
push ecx
call fcn.00802690
mov ecx, dword [esp + edi*4 + 0x104]
lea eax, [esp + edi*4 + 0x104]
mov dword [eax], ecx
mov edx, dword [esp + 0x104]
xor edx, ecx
mov dword [esp + 0x104], edx
add esp, 0xc
xor dword [eax], edx
mov ebp, dword [esp + 0x104]
mov esi, dword [esp + 0x100]
mov edx, dword [esp + 0xf8]
movzx eax, byte [ebx + edx + 0x108]
mov edi, dword [esp + 0xfc]
mov ecx, eax
shr ecx, 4
mov dword [esp + 0x78], ecx
movzx ecx, byte [ebx + edi + 0x108]
shr ecx, 4
mov dword [esp + 0x7c], ecx
movzx ecx, byte [ebx + esi + 0x108]
shr ecx, 4
mov dword [esp + 0x80], ecx
movzx ecx, byte [ebx + ebp + 0x108]
shr ecx, 4
cmp byte [ebx + 0x59], 0
mov dword [esp + 0x84], ecx
jne 0x655d45
mov edx, dword [ebx + 0xd4]
and eax, 0xf
mov ecx, dword [edx + eax*4]
mov dword [esp + 0x108], ecx
mov eax, edi
movzx eax, byte [ebx + eax + 0x108]
and eax, 0xf
mov eax, dword [edx + eax*4]
mov dword [esp + 0x10c], eax
movzx eax, byte [ebx + esi + 0x108]
and eax, 0xf
mov eax, dword [edx + eax*4]
mov dword [esp + 0x110], eax
movzx eax, byte [ebx + ebp + 0x108]
and eax, 0xf
mov edx, dword [edx + eax*4]
mov dword [esp + 0x114], edx
jmp 0x655d8a
mov eax, dword [ebx + 0xd8]
mov ecx, dword [eax + edx*4]
and ecx, 0xffffff
mov dword [esp + 0x108], ecx
mov edx, dword [eax + edi*4]
and edx, 0xffffff
mov dword [esp + 0x10c], edx
mov edx, dword [eax + esi*4]
and edx, 0xffffff
mov dword [esp + 0x110], edx
mov eax, dword [eax + ebp*4]
and eax, 0xffffff
mov dword [esp + 0x114], eax
fld dword [0x404c6c]
xor eax, eax
fstp dword [esp + 0x44]
mov dword [esp + 0x38], eax
fld dword [0x404c68]
mov dword [esp + 0x3c], eax
fstp dword [esp + 0x48]
mov dword [esp + 0x40], 0x11
fld dword [0x404c64]
mov dword [esp + 0x58], eax
fstp dword [esp + 0x4c]
mov dword [esp + 0x5c], 0xa
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x50], 0x26
mov dword [esp + 0x54], eax
mov eax, ecx
xor edx, edx
mov edi, 0x11
div edi
push 1
mov esi, ecx
mov ebp, ecx
push 0x11
lea ecx, [esp + 0x40]
mov byte [esp + 0x15c], 4
mov edi, edx
call fcn.00635dd0
test al, al
je 0x6564ec
push ebp
push edi
push esi
lea ecx, [esp + 0x44]
call fcn.005d0730
mov byte [eax + 4], 0
mov ecx, dword [esp + 0x10c]
xor edx, edx
mov eax, ecx
div dword [esp + 0x40]
cmp dword [esp + 0x38], 0
mov ebp, ecx
mov esi, edx
je 0x655e50
mov edx, dword [esp + 0x38]
mov eax, dword [edx + esi*4]
test eax, eax
je 0x655e50
lea ecx, [ecx]
cmp dword [eax + 0xc], ecx
jne 0x655e49
cmp dword [eax], ecx
je 0x655e7d
mov eax, dword [eax + 8]
test eax, eax
jne 0x655e40
cmp dword [esp + 0x38], 0
mov edi, ecx
jne 0x655e71
mov eax, dword [esp + 0x40]
push 1
push eax
lea ecx, [esp + 0x40]
call fcn.00635dd0
test al, al
je 0x6564ec
push edi
push esi
push ebp
lea ecx, [esp + 0x44]
call fcn.005d0730
mov byte [eax + 4], 1
mov ecx, dword [esp + 0x110]
xor edx, edx
mov eax, ecx
div dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
mov edi, edx
test ebp, ebp
je 0x655eb2
mov eax, dword [ebp + edi*4]
test eax, eax
je 0x655eb2
cmp dword [eax + 0xc], ecx
jne 0x655eab
cmp dword [eax], ecx
je 0x655ee2
mov eax, dword [eax + 8]
test eax, eax
jne 0x655ea2
mov esi, ecx
test ebp, ebp
jne 0x655ed0
mov ecx, dword [esp + 0x40]
push 1
push ecx
lea ecx, [esp + 0x40]
call fcn.00635dd0
test al, al
je 0x6564ec
push esi
push edi
mov edx, esi
push edx
lea ecx, [esp + 0x44]
call fcn.005d0730
mov ebp, dword [esp + 0x38]
mov byte [eax + 4], 2
mov ecx, dword [esp + 0x114]
xor edx, edx
mov eax, ecx
div dword [esp + 0x40]
mov edi, edx
test ebp, ebp
je 0x655f13
mov eax, dword [ebp + edi*4]
test eax, eax
je 0x655f13
cmp dword [eax + 0xc], ecx
jne 0x655f0c
cmp dword [eax], ecx
je 0x655f3f
mov eax, dword [eax + 8]
test eax, eax
jne 0x655f03
mov esi, ecx
test ebp, ebp
jne 0x655f31
mov eax, dword [esp + 0x40]
push 1
push eax
lea ecx, [esp + 0x40]
call fcn.00635dd0
test al, al
je 0x6564ec
push esi
push edi
mov ecx, esi
push ecx
lea ecx, [esp + 0x44]
call fcn.005d0730
mov byte [eax + 4], 3
mov esi, dword [ebx + 0x100]
sub esi, dword [ebx + 0xf8]
mov eax, dword [ebx + 0x104]
sub eax, dword [ebx + 0xfc]
sub esi, 2
lea ecx, [esi + 1]
sar ecx, 1
add ecx, 3
sub eax, 2
and ecx, 0xfffffffc
mov dword [esp + 0x108], 0xff
mov dword [esp + 0x2c], esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], ecx
test eax, eax
jle 0x656077
lea edx, [esi*4 + 8]
mov dword [esp + 0x24], edx
mov edi, ecx
neg edi
lea edx, [eax - 1]
imul edx, ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
mov edx, dword [ebx + 0x10c]
mov eax, dword [esp + 0x24]
xor ecx, ecx
lea ebp, [edx + eax + 4]
mov dword [esp + 0x28], ecx
test esi, esi
jle 0x65605a
jmp 0x655fd4
mov ecx, dword [esp + 0x28]
mov eax, dword [ebp]
mov byte [esp + 0x17], 0
test eax, 0xff000000
je 0x65601b
and eax, 0xffffff
xor edx, edx
mov edi, eax
div dword [esp + 0x40]
cmp dword [esp + 0x38], 0
je 0x65601b
mov eax, dword [esp + 0x38]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x65601b
cmp dword [eax + 0xc], edi
jne 0x65600b
cmp dword [eax], edi
je 0x656014
mov eax, dword [eax + 8]
test eax, eax
jne 0x656002
jmp 0x65601b
mov dl, byte [eax + 4]
mov byte [esp + 0x17], dl
movzx edx, byte [esp + 0x17]
mov eax, ecx
sar eax, 1
add eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
test cl, 1
movzx ecx, byte [eax]
je 0x65603c
and ecx, 0xf0
jmp 0x656042
and ecx, 0xf
shl edx, 4
or ecx, edx
mov byte [eax], cl
mov eax, dword [esp + 0x28]
inc eax
add ebp, 4
mov dword [esp + 0x28], eax
cmp eax, esi
jl 0x655fd0
lea eax, [esi*4 + 8]
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
add dword [esp + 0x1c], eax
dec dword [esp + 0x18]
jne 0x655fac
mov edi, dword [ebx + 0xe8]
add edi, dword [esp + 0x160]
mov ebp, dword [ebx + 0xf0]
add ebp, edi
test ebp, ebp
jle 0x65644e
test edi, edi
jns 0x65609a
xor edi, edi
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x6564f6
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x15c]
inc ecx
push ecx
push edx
lea eax, [esp + 0x20]
push 0x4433c0
push eax
mov byte [esp + 0x164], 5
call fcn.004aa600
add esp, 0x10
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x6564f6
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, 0x10624dd3
imul ebp
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
imul ecx, ecx, 0x3e8
cdq
mov esi, 0x3c
idiv esi
mov ebx, 0x3c
sub ebp, ecx
mov byte [esp + 0x154], 6
mov ecx, edx
cdq
idiv esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
mov eax, 0x10624dd3
imul edi
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, esi
cdq
idiv ebx
mov dword [esp + 0x8c], edx
cdq
idiv ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x88], edx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x84]
mov edx, eax
shl edx, 4
or edx, eax
mov eax, dword [esp + 0x80]
push edx
mov edx, eax
shl edx, 4
or edx, eax
mov eax, dword [esp + 0x80]
push edx
mov edx, eax
shl edx, 4
or edx, eax
mov eax, dword [esp + 0x80]
push edx
mov edx, eax
shl edx, 4
or edx, eax
mov eax, dword [ebx + 0xfc]
push edx
mov edx, dword [ebx + 0x104]
sub edx, dword [ebx + 0xfc]
push eax
mov eax, dword [ebx + 0xf8]
push eax
push edx
mov edx, dword [ebx + 0x100]
sub edx, eax
push edx
mov eax, 0x66666667
imul ebp
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x44]
push eax
push ecx
mov eax, dword [esp + 0x50]
imul esi, esi, 0x3e8
push edx
push eax
sub edi, esi
mov eax, 0x66666667
imul edi
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0x48]
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0xbc]
push ecx
mov ecx, dword [esp + 0x9c]
push edx
push eax
push ecx
push edi
lea edx, [esp + 0x60]
push 0x443328
push edx
call fcn.004aa600
mov eax, dword [esp + 0x68]
add esp, 0x4c
push eax
lea ecx, [esp + 0xac]
call fcn.007e4bf0
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
imul esi, eax
mov ecx, 0x4d42
mov word [esp + 0xc0], cx
xor ecx, ecx
mov dword [esp + 0xc6], ecx
mov ecx, dword [esp + 0x2c]
xor ebp, ebp
lea edx, [esi + 0x76]
mov dword [esp + 0xd4], ecx
lea ecx, [esp + 0x94]
mov dword [esp + 0xc2], edx
mov dword [esp + 0xca], 0x76
mov dword [esp + 0xd0], 0x28
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], 0x40001
mov dword [esp + 0xe0], ebp
mov dword [esp + 0xe4], ebp
mov dword [esp + 0xe8], esi
mov dword [esp + 0xec], ebp
mov dword [esp + 0xf0], 0x10
mov dword [esp + 0xf4], 4
call fcn.007ddfe5
push ebp
push 0x9021
push edi
lea ecx, [esp + 0xa0]
mov byte [esp + 0x160], 7
call fcn.007de497
test eax, eax
je 0x6563ee
push 0xe
lea ecx, [esp + 0xc4]
push ecx
lea ecx, [esp + 0x9c]
call fcn.007ddce9
push 0x28
lea edx, [esp + 0xd4]
push edx
lea ecx, [esp + 0x9c]
call fcn.007ddce9
push 0x40
lea eax, [esp + 0x10c]
push eax
lea ecx, [esp + 0x9c]
call fcn.007ddce9
mov ecx, dword [esp + 0x20]
push esi
push ecx
lea ecx, [esp + 0x9c]
call fcn.007ddce9
lea ecx, [esp + 0x94]
call fcn.007ddf80
push ecx
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
lea ebp, [edi - 0x10]
mov dword [esp + 0x30], esp
mov dword [esp + 0x30], esp
call eax
cmp dword [ebp + 0xc], 0
lea edx, [ebp + 0xc]
jl 0x6563a2
cmp eax, dword [ebp]
jne 0x6563a2
mov esi, ebp
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x6563dd
mov ecx, dword [ebp + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
je 0x656500
mov eax, dword [ebp + 4]
mov dword [esi + 4], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + eax + 2]
push ecx
add ebp, 0x10
lea edx, [eax + eax + 2]
push ebp
push edx
lea eax, [esi + 0x10]
push eax
call fcn.0080217f
add esp, 0x10
mov ecx, dword [esp + 0x30]
add esi, 0x10
mov dword [ecx], esi
call fcn.00654e10
add esp, 4
lea ecx, [esp + 0x94]
mov byte [esp + 0x154], 6
call fcn.007de0e4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x154], 5
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x65642a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 0xfffffff0
mov byte [esp + 0x154], 4
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x65644e
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x154], 3
call fcn.00646fa0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x6c]
inc eax
mov dword [esp + 0x30], eax
cmp eax, dword [ecx + 4]
jb 0x655bf0
or edi, 0xffffffff
mov edx, dword [esp + 0x20]
push edx
call fcn.007c8563
add esp, 4
lea ecx, [esp + 0xa8]
mov byte [esp + 0x154], 0
call fcn.007e4df4
mov eax, dword [esp + 0x15c]
add eax, 0xfffffff0
mov dword [esp + 0x154], edi
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edi
dec edi
test edi, edi
jg 0x6564c0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [esp + 0x14c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x134]
xor ecx, esp
call fcn.0080262b
add esp, 0x144
ret 8
push 0x8007000e
call fcn.004a8210
push 0x80004005
call fcn.004a8210
call fcn.004a8580
int3