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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x158
push ebx
push ebp
mov ebx, ecx
mov ecx, dword [ebx + 0x498]
mov eax, dword [ecx]
push esi
push edi
call dword [eax + 0x78]
lea esi, [eax + eax]
xor ebp, ebp
lea edi, [esi + esi*8]
shl edi, 2
lea ecx, [ebx + 0x49c]
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], edi
mov dword [esp + 0x10], ecx
mov edi, edi
mov eax, dword [ebx + 0x5f0]
test eax, eax
je 0x56e899
mov ecx, dword [ebx + 0x5f4]
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [esi + ebp]
cmp ecx, eax
jae 0x56e899
add esi, 6
cmp ecx, esi
jge 0x56e899
cmp ebp, 6
jge 0x56e899
mov eax, dword [ebx + 0x5f0]
push 0x104
lea esi, [edi + eax]
lea edx, [esp + 0x5c]
xor edi, edi
push 0x6fec50
push edx
mov byte [esp + 0x64], 0
mov dword [esp + 0x168], edi
mov dword [esp + 0x16c], edi
call fcn.0065cfb0
add esp, 0xc
mov byte [esp + 0x15b], 0
mov dword [esp + 0x15c], 0x84
mov edx, dword [esi + 8]
xor ecx, ecx
cmp edx, edi
je 0x56e202
mov eax, dword [esi + 0xc]
sub eax, edx
sar eax, 2
cmp ecx, eax
jae 0x56e202
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 0x2e], 5
je 0x56e20f
inc ecx
jmp 0x56e1e3
mov dword [esp + 0x160], 0x12
jmp 0x56e21a
mov dword [esp + 0x160], 0x11
mov edi, ebp
and edi, 0x80000001
jns 0x56e229
dec edi
or edi, 0xfffffffe
inc edi
mov eax, ebp
imul edi, edi, 0x12c
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
imul ebp, ebp, 0xc8
lea ecx, [esp + 0x24]
push ecx
lea eax, [ebp + 0x96]
push eax
mov dword [esp + 0x20], edi
add edi, 0xc8
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
push edi
lea edx, [esp + 0x64]
push edx
push ecx
mov ecx, ebx
mov dword [esp + 0x38], 0x3f800000
mov dword [esp + 0x3c], 0x3f800000
mov dword [esp + 0x48], 0x3f19999a
mov dword [esp + 0x4c], 0x3f19999a
call fcn.005614d0
mov edx, dword [esi]
push edx
push 0x717244
lea eax, [esp + 0x4c]
push 0x14
push eax
call fcn.0065cf4d
mov ecx, dword [esp + 0x24]
add esp, 0x10
add ecx, 0xffffffd8
push ecx
add edi, 0xffffffb0
push edi
sub esp, 0x1c
mov edi, esp
mov byte [esp + 0x7b], 0
lea edx, [esp + 0x68]
mov dword [esp + 0x44], esp
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], 0
push edx
mov byte [edi + 4], 0
call fcn.0065c790
add esp, 4
push eax
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call fcn.00404b60
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x14]
push edx
mov ecx, ebx
call fcn.00562020
mov ecx, dword [esi + 8]
xor edi, edi
mov edi, edi
test ecx, ecx
je 0x56e371
mov eax, dword [esi + 0xc]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x56e371
mov eax, dword [esi + 8]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2d], 1
je 0x56e31f
inc edi
jmp 0x56e300
cmp edi, 0xffffffff
mov dword [esp + 0x1c], edi
je 0x56e379
push 1
mov ecx, esi
call fcn.0056df80
cmp eax, 3
je 0x56e340
cmp eax, 4
je 0x56e340
cmp eax, 5
jne 0x56e379
mov eax, dword [esi + 8]
mov edi, dword [eax + edi*4]
test edi, edi
mov dword [esp + 0x15c], 0x21
je 0x56e3bf
mov di, word [edi + 0x24]
cmp di, 1
jb 0x56e3bf
cmp di, 0x1c
ja 0x56e3bf
movzx eax, di
mov dword [esp + 0x160], eax
jmp 0x56e3ca
mov dword [esp + 0x1c], 0xffffffff
push 1
mov ecx, esi
call fcn.0056def0
test al, al
mov dword [esp + 0x15c], 0x84
je 0x56e3ed
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x1c]
push ecx
add eax, 0x9e
push eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x18]
lea edx, [esp + 0x64]
push edx
mov dword [esp + 0x170], 0x14
push ecx
jmp 0x56e419
mov dword [esp + 0x160], 1
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [ecx + 0x18]
add eax, 0x9e
push eax
lea eax, [esp + 0x64]
push eax
push edx
jmp 0x56e419
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x20]
add eax, 0x9e
push eax
mov eax, dword [edx + 0x18]
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x170], 0x13
push eax
mov ecx, ebx
call fcn.005614d0
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
je 0x56e4e4
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*4]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x56e4e4
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffff1
push ecx
mov ecx, dword [esp + 0x1c]
add ecx, 0x85
push ecx
sub esp, 0x1c
mov edi, esp
add eax, 4
mov dword [esp + 0x44], esp
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], 0
push eax
mov byte [edi + 4], 0
call fcn.0065c790
add esp, 4
push eax
mov eax, dword [esp + 0x44]
add eax, 4
push eax
mov ecx, edi
call fcn.00404b60
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x1c]
push eax
mov ecx, ebx
call fcn.00562020
mov ecx, dword [esp + 0x1c]
mov al, byte [ecx + 0x2e]
cmp al, 3
je 0x56e4ab
cmp al, 4
je 0x56e4ab
cmp al, 5
jne 0x56e4e4
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
push edx
mov edx, dword [ecx + 0x24]
add eax, 0xc6
push eax
lea eax, [esp + 0x60]
push eax
push edx
mov ecx, ebx
mov dword [esp + 0x16c], 0x84
mov dword [esp + 0x170], 0x16
call fcn.00561540
mov ecx, dword [esi + 8]
add ebp, 0xe6
mov dword [esp + 0x20], ebp
xor edi, edi
test ecx, ecx
je 0x56e564
mov eax, dword [esi + 0xc]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x56e564
mov eax, dword [esi + 8]
mov eax, dword [eax + edi*4]
cmp byte [eax + 0x2d], 2
je 0x56e512
inc edi
jmp 0x56e4f3
cmp edi, 0xffffffff
mov dword [esp + 0x1c], edi
je 0x56e56c
push 2
mov ecx, esi
call fcn.0056df80
cmp eax, 3
je 0x56e533
cmp eax, 4
je 0x56e533
cmp eax, 5
jne 0x56e56c
mov dword [esp + 0x15c], 0x21
mov eax, dword [esi + 8]
mov edi, dword [eax + edi*4]
test edi, edi
je 0x56e5ae
mov di, word [edi + 0x24]
cmp di, 1
jb 0x56e5ae
cmp di, 0x1c
ja 0x56e5ae
movzx eax, di
mov dword [esp + 0x160], eax
jmp 0x56e5b9
mov dword [esp + 0x1c], 0xffffffff
push 2
mov ecx, esi
call fcn.0056def0
mov edi, dword [esp + 0x18]
add edi, 0xde
test al, al
mov dword [esp + 0x15c], 0x84
je 0x56e5d8
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x24]
push edx
mov edx, dword [ecx]
push ebp
push edi
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0x170], 0x14
push edx
jmp 0x56e5f6
mov dword [esp + 0x160], 1
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [eax]
push ebp
add edi, 0xde
push edi
lea edx, [esp + 0x64]
push edx
push ecx
jmp 0x56e5f6
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x24]
push eax
mov eax, dword [edx]
push ebp
push edi
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x170], 0x13
push eax
mov ecx, ebx
call fcn.005614d0
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
je 0x56e6b2
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*4]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x56e6b2
add ebp, 0x28
push ebp
add edi, 0xffffffe7
push edi
sub esp, 0x1c
mov edi, esp
lea ebp, [eax + 4]
mov dword [esp + 0x60], esp
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], 0
push ebp
mov byte [edi + 4], 0
call fcn.0065c790
add esp, 4
push eax
push ebp
mov ecx, edi
call fcn.00404b60
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 4]
push edx
mov ecx, ebx
call fcn.00562020
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 0x2e]
cmp al, 3
je 0x56e676
cmp al, 4
je 0x56e676
cmp al, 5
jne 0x56e6b2
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
add ecx, 0xffffffec
push ecx
add eax, 0xde
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x60]
push edx
push ecx
mov ecx, ebx
mov dword [esp + 0x16c], 0x84
mov dword [esp + 0x170], 0x16
call fcn.00561540
mov edx, dword [esi + 8]
xor ecx, ecx
test edx, edx
je 0x56e6da
mov eax, dword [esi + 0xc]
sub eax, edx
sar eax, 2
cmp ecx, eax
jae 0x56e6da
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 0x2d], 3
je 0x56e6d6
inc ecx
jmp 0x56e6b7
mov ebp, ecx
jmp 0x56e6dd
or ebp, 0xffffffff
mov edi, dword [esp + 0x18]
add edi, 0x11c
cmp ebp, 0xffffffff
mov dword [esp + 0x20], edi
je 0x56e75e
push 3
mov ecx, esi
call fcn.0056df80
cmp eax, 3
je 0x56e708
cmp eax, 4
je 0x56e708
cmp eax, 5
jne 0x56e75e
mov dword [esp + 0x15c], 0x21
mov eax, dword [esi + 8]
mov eax, dword [eax + ebp*4]
test eax, eax
je 0x56e739
mov ax, word [eax + 0x24]
cmp ax, 1
jb 0x56e739
cmp ax, 0x1c
ja 0x56e739
movzx edx, ax
mov dword [esp + 0x160], edx
jmp 0x56e744
mov dword [esp + 0x160], 1
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [eax + 0x28]
push edi
lea edx, [esp + 0x64]
push edx
push ecx
jmp 0x56e7be
push 3
mov ecx, esi
call fcn.0056def0
test al, al
mov dword [esp + 0x15c], 0x84
je 0x56e79b
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [edx + 0x28]
push edi
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x170], 0x14
push eax
jmp 0x56e7be
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [ecx + 0x28]
push edi
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0x170], 0x13
push edx
mov ecx, ebx
call fcn.005614d0
cmp ebp, 0xffffffff
je 0x56e86d
mov esi, dword [esi + 8]
mov ebp, dword [esi + ebp*4]
test ebp, ebp
je 0x56e86d
mov eax, dword [esp + 0x14]
add eax, 0xfffffff1
push eax
add edi, 0xffffffe7
push edi
sub esp, 0x1c
mov esi, esp
lea edi, [ebp + 4]
mov dword [esp + 0x60], esp
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], 0
push edi
mov byte [esi + 4], 0
call fcn.0065c790
add esp, 4
push eax
push edi
mov ecx, esi
call fcn.00404b60
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x2c]
push edx
mov ecx, ebx
call fcn.00562020
mov al, byte [ebp + 0x2e]
cmp al, 3
je 0x56e836
cmp al, 4
je 0x56e836
cmp al, 5
jne 0x56e86d
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x14]
add ecx, 0xffffffec
push ecx
mov ecx, dword [eax + 0x34]
lea edx, [esp + 0x60]
push edx
push ecx
mov ecx, ebx
mov dword [esp + 0x16c], 0x84
mov dword [esp + 0x170], 0x16
call fcn.00561540
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x40]
inc edx
add ecx, 0x24
add eax, 0x38
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], eax
mov edi, ecx
mov ebp, edx
jmp 0x56e150
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret