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

Disassembly:
push 0xffffffffffffffff
push 0x65813d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x18c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1ac]
lea eax, [esp + 0xc]
push edi
mov ebx, ecx
push eax
push esi
mov dword [esp + 0x48], ebx
call fcn.0056f320
cmp esi, 7
ja case.default.0x56e8c0
jmp dword [esi*4 + 0x56f0c8]
cmp dword [0x86fb60], 2
jne 0x56e8dd
mov eax, dword [0x8267b0]
test eax, eax
je case.default.0x56e8c0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1ac]
lea edx, [ecx + 2]
mov dword [esp + 0x38], eax
mov eax, dword [0x6e760c]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
test eax, eax
mov dword [esp + 0x3c], edx
je 0x56e94f
mov eax, dword [0x6e7c98]
mov edx, 0x10
neg eax
sbb eax, eax
mov ebx, edx
and al, 0xfe
mov ebp, edx
add eax, 0x19b
push eax
push 0xc0c0c0
push ebx
push edx
mov eax, edx
push ebp
push eax
mov eax, edi
push ecx
push eax
push esi
mov ecx, 0x898828
call fcn.00512030
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x40]
add edi, 0x11
mov edx, dword [0x826c88]
mov eax, dword [edx + 0x18]
test eax, eax
jne 0x56e96d
call fcn.00553fc0
test eax, eax
je 0x56ea41
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
lea eax, [ebx + 0x40]
mov edx, eax
push 0x899da0
mov dword [edx], ebp
lea ebp, [edi + 0x2c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [edx + 0xc], ecx
mov dword [eax], edi
mov dword [ebx + 0x48], ebp
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x30]
mov eax, dword [esi]
push 0x40ff
mov ecx, esi
call dword [eax + 0x38]
mov ecx, dword [0x826c88]
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x56e9f9
push 0x6bcf8c
lea ecx, [esp + 0x4c]
call fcn.00643d2c
mov eax, dword [esp + 0x48]
mov edx, dword [esi]
add edi, 3
mov dword [esp + 0x1a4], 0
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x2c]
mov ecx, esi
push eax
push edi
call dword [edx + 0x64]
mov dword [esp + 0x1a4], 0xffffffff
lea ecx, [esp + 0x48]
jmp 0x56ea3a
push 0x69acd4
lea ecx, [esp + 0x50]
call fcn.00643d2c
mov eax, dword [esp + 0x4c]
mov edx, dword [esi]
add edi, 3
mov dword [esp + 0x1a4], 1
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x2c]
mov ecx, esi
push eax
push edi
call dword [edx + 0x64]
mov dword [esp + 0x1a4], 0xffffffff
lea ecx, [esp + 0x4c]
call fcn.00643d26
mov edi, ebp
mov eax, dword [0x6e7bc4]
test eax, eax
je 0x56ea5c
mov edx, dword [esi]
push 0x899da8
mov ecx, esi
call dword [edx + 0x30]
mov dword [esp + 0x2c], eax
jmp 0x56ea75
mov eax, dword [esi]
push 0x899d90
mov ecx, esi
call dword [eax + 0x30]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x38]
mov eax, dword [esp + 0x38]
xor ebx, ebx
xor ebp, ebp
sub eax, edi
mov dword [esp + 0x20], eax
test ebx, ebx
jle 0x56eac2
mov eax, 0x55555556
mov ecx, dword [esp + 0x3c]
imul ebp
mov eax, edx
push 1
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x38]
push 0
push 0x808080
lea edx, [edx + edi - 2]
push ecx
push edx
push eax
push edx
push esi
mov ecx, 0x732bc0
call fcn.00495d80
mov ecx, dword [esp + 0x40]
push ebx
call fcn.0056e810
lea ecx, [eax*8]
sub ecx, eax
lea edx, [ecx*4 + 0x6d4a38]
lea ecx, [esp + 0x58]
push edx
call fcn.00643d2c
mov eax, 0x55555556
mov dword [esp + 0x1a4], 2
imul ebp
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x58]
add edx, edi
mov ecx, dword [eax - 8]
mov dword [esp + 0x28], ecx
mov ecx, dword [esi]
push dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
mov ecx, esi
push eax
mov eax, dword [esp + 0x2c]
push eax
push edx
mov edx, dword [esp + 0x38]
call dword [edx + 0x64]
lea ecx, [esp + 0x58]
mov dword [esp + 0x1a4], 0xffffffff
call fcn.00643d26
mov ecx, dword [esp + 0x20]
inc ebx
add ebp, ecx
cmp ebx, 3
jl 0x56ea8c
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x30]
mov eax, 0x55555556
xor ebx, ebx
imul dword [esp + 0x20]
mov eax, edx
shr eax, 0x1f
add edx, eax
xor ebp, ebp
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x38]
mov eax, 0x55555556
mov dword [esp + 0x64], edx
imul ebp
mov eax, edx
mov ecx, dword [esp + 0x34]
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x28]
add edx, edi
push ebx
add eax, edx
sub esp, 0x10
mov dword [esp + 0x78], eax
mov eax, esp
inc ecx
mov dword [esp + 0x70], edi
mov dword [eax], edx
mov edx, esp
push esi
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x54]
mov dword [edx + 0xc], eax
call fcn.005703e0
mov ecx, dword [esp + 0x20]
inc ebx
add ebp, ecx
cmp ebx, 3
jl 0x56eb6e
jmp case.default.0x56e8c0
cmp dword [0x86fb60], 2
jne 0x56ebe9
mov eax, dword [0x8267b0]
test eax, eax
je case.default.0x56e8c0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1ac]
push 1
push 0
push 0x808080
push eax
mov eax, dword [esp + 0x20]
push eax
push ecx
push eax
push esi
mov ecx, 0x732bc0
call fcn.00495d80
mov ecx, dword [0x826818]
push 0
push 0
push 0xffffffffffffffff
lea edx, [esp + 0x110]
push 0x69c1a0
push edx
call fcn.004489b0
mov ecx, dword [0x826818]
push 0
push 0
push 0xffffffffffffffff
lea eax, [esp + 0x78]
push 0x69c1a8
push eax
call fcn.004489b0
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x6c]
push edx
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x108]
add ecx, 3
push edx
add eax, 2
sub esp, 0x10
mov dword [esp + 0x2c], eax
mov edx, esp
mov dword [esp + 0x28], ecx
push esi
mov dword [edx], ecx
mov ecx, dword [esp + 0x38]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov ecx, ebx
call fcn.005707f0
jmp case.default.0x56e8c0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1ac]
push 1
push 0
push 0x808080
push edx
push eax
push ecx
push eax
push esi
mov ecx, 0x732bc0
call fcn.00495d80
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x38]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x1c]
add eax, 4
add ecx, 2
mov dword [esp + 0x30], eax
mov eax, dword [esi]
mov dword [esp + 0x34], ecx
sub edx, 2
push 0x899d90
mov ecx, esi
mov dword [esp + 0x40], edx
call dword [eax + 0x30]
mov edi, eax
mov eax, dword [0x8267b0]
test eax, eax
jne 0x56edc2
cmp dword [0x826844], 1
jne 0x56ed6e
push 0x6bcf78
lea ecx, [esp + 0x48]
call fcn.00643d2c
mov eax, dword [esp + 0x44]
mov edx, dword [esi]
lea ebx, [esp + 0x30]
push 0xc000
mov ecx, dword [eax - 8]
push ebx
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x1b4], 3
call dword [edx + 0x70]
lea ecx, [esp + 0x44]
mov dword [esp + 0x1a4], 0xffffffff
call fcn.00643d26
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x30]
jmp case.default.0x56e8c0
push 0x6bcf5c
lea ecx, [esp + 0x58]
call fcn.00643d2c
mov eax, dword [esp + 0x54]
mov edx, dword [esi]
lea ebx, [esp + 0x30]
push 0xc000
mov ecx, dword [eax - 8]
push ebx
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x1b4], 4
call dword [edx + 0x70]
lea ecx, [esp + 0x54]
mov dword [esp + 0x1a4], 0xffffffff
call fcn.00643d26
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x30]
jmp case.default.0x56e8c0
mov eax, dword [0x6e7618]
test eax, eax
je 0x56edf3
mov edx, dword [esi]
lea eax, [esp + 0x30]
push 0xc000
push eax
mov eax, dword [0x703654]
mov ecx, dword [eax - 8]
push ecx
push eax
mov ecx, esi
call dword [edx + 0x70]
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x30]
jmp case.default.0x56e8c0
mov eax, dword [0x6e7359]
test eax, eax
je 0x56ee69
lea ecx, [esp + 0x20]
call fcn.00643d62
mov edx, dword [0x703654]
lea eax, [esp + 0x20]
push edx
push 0x732900
push 0x69a744
push eax
mov dword [esp + 0x1b4], 5
call fcn.00643d50
mov eax, dword [esp + 0x30]
mov edx, dword [esi]
add esp, 0x10
lea ebx, [esp + 0x30]
mov ecx, dword [eax - 8]
push 0xc000
push ebx
push ecx
push eax
mov ecx, esi
call dword [edx + 0x70]
lea ecx, [esp + 0x20]
mov dword [esp + 0x1a4], 0xffffffff
call fcn.00643d26
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x30]
jmp case.default.0x56e8c0
push 0x732900
lea ecx, [esp + 0x54]
call fcn.00643d2c
mov eax, dword [esp + 0x50]
mov edx, dword [esi]
lea ebx, [esp + 0x30]
push 0xc000
mov ecx, dword [eax - 8]
push ebx
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x1b4], 6
call dword [edx + 0x70]
lea ecx, [esp + 0x50]
mov dword [esp + 0x1a4], 0xffffffff
call fcn.00643d26
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x30]
jmp case.default.0x56e8c0
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x56eef3
mov eax, dword [0x6e7bc4]
test eax, eax
je 0x56eed6
mov ecx, dword [esp + 0x14]
lea ebx, [ecx + 1]
jmp 0x56eeda
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, 0x10
mov ecx, eax
mov edx, eax
mov esi, eax
push 0x367
jmp 0x56efe3
mov edi, 0x6ddf4e
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je case.default.0x56e8c0
mov eax, dword [0x6e7bc4]
test eax, eax
je 0x56ef1a
mov eax, dword [esp + 0x14]
lea ebx, [eax + 1]
jmp 0x56ef1e
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, 0x10
mov ecx, eax
mov edx, eax
mov esi, eax
push 0x366
jmp 0x56f050
cmp dword [0x86fb60], 2
jne 0x56ef4d
mov eax, dword [0x8267b0]
test eax, eax
je case.default.0x56e8c0
mov eax, dword [0x6e7bc4]
test eax, eax
je 0x56ef5f
mov edx, dword [esp + 0x14]
lea ebx, [edx + 1]
jmp 0x56ef63
mov ebx, dword [esp + 0x14]
mov ebp, dword [0x826c0c]
mov edi, dword [esp + 0x10]
neg ebp
sbb ebp, ebp
mov eax, 0x10
and ebp, 0x15c
mov ecx, eax
add ebp, 0x1d1
mov edx, eax
mov esi, eax
push ebp
jmp 0x56f08f
mov eax, dword [0x86fb60]
cmp eax, 2
mov eax, dword [0x8267b0]
jne 0x56efa5
test eax, eax
je case.default.0x56e8c0
mov ecx, dword [0x8267bc]
test ecx, ecx
je 0x56efb8
test eax, eax
mov ebp, 0x292
jne 0x56efbd
mov ebp, 0x291
mov eax, dword [0x6e7bc4]
test eax, eax
je 0x56efcf
mov ecx, dword [esp + 0x14]
lea ebx, [ecx + 1]
jmp 0x56efd3
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, 0x10
mov ecx, eax
mov edx, eax
mov esi, eax
push ebp
push 0xc0c0c0
push ecx
push eax
push esi
push edx
mov edx, dword [esp + 0x1c4]
push ebx
push edi
push edx
jmp 0x56f0a2
mov eax, dword [0x86fb60]
cmp eax, 2
mov eax, dword [0x8267b0]
jne 0x56f012
test eax, eax
je case.default.0x56e8c0
mov ecx, dword [0x8267c0]
test ecx, ecx
je 0x56f025
test eax, eax
mov ebp, 0x24e
jne 0x56f02a
mov ebp, 0x253
mov eax, dword [0x6e7bc4]
test eax, eax
je 0x56f03c
mov eax, dword [esp + 0x14]
lea ebx, [eax + 1]
jmp 0x56f040
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, 0x10
mov ecx, eax
mov edx, eax
mov esi, eax
push ebp
push 0xc0c0c0
push ecx
mov ecx, dword [esp + 0x1b8]
push eax
push esi
push edx
push ebx
push edi
push ecx
jmp 0x56f0a2
mov eax, dword [0x6e7bc4]
test eax, eax
je 0x56f077
mov edx, dword [esp + 0x14]
lea ebx, [edx + 1]
jmp 0x56f07b
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, 0x10
mov ecx, eax
mov edx, eax
mov esi, eax
push 0x181
push 0xc0c0c0
push ecx
push eax
mov eax, dword [esp + 0x1bc]
push esi
push edx
push ebx
push edi
push eax
mov ecx, 0x898828
call fcn.00512030
mov ecx, dword [esp + 0x19c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x198
ret 8