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

Disassembly:
mov ecx, dword [0x78bd58]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0xe0]
cmp eax, dword [ecx + 8]
jbe 0x56f24f
sub esp, 0x160
mov eax, dword [esp + 0x1a4]
test eax, eax
je 0x56ef07
test eax, 0x200
jne 0x56e526
lea ecx, [0x622d88]
mov edx, dword [esp + 0x19c]
jmp 0x56e557
mov ecx, dword [esp + 0x19c]
mov dword [esp], ecx
mov edx, dword [esp + 0x1a0]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004af030
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x88], edx
mov dword [esp + 0x64], ecx
mov ebx, dword [esp + 0x19c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x1a0]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.00572020
mov eax, dword [esp + 0x14]
mov ecx, eax
and eax, 0x1f
movzx edx, byte [esp + 0x18]
nop
cmp eax, 0x14
jne 0x56e68f
test dl, dl
je 0x56e68c
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov eax, dword [esp + 0x64]
test eax, eax
je 0x56e5d9
mov ecx, dword [eax + 4]
jmp 0x56e5db
mov ecx, eax
mov dword [esp + 0x148], ecx
mov eax, dword [esp + 0x88]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x174]
mov dword [esp], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 4], eax
call fcn.0040e820
mov eax, dword [esp + 8]
lea ecx, [0x5b1e40]
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x164]
mov dword [esp], eax
lea eax, [0x5e396d]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
lea eax, [esp + 0x148]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 2
call fcn.0056ae90
mov eax, dword [0x74d268]
mov ecx, dword [0x74d26c]
mov edx, dword [0x74d270]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1b0], edx
add esp, 0x160
ret
cmp eax, 0x14
mov byte [esp + 0x56], dl
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], ecx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x110], ebx
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x10c], ebp
je 0x56e6de
cmp eax, 0x16
je 0x56e6de
test ecx, 0x100
je 0x56e6de
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
call fcn.004a67c0
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, eax
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x174]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x10], ecx
call fcn.004acbb0
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x56ee28
mov ecx, dword [esp + 0x188]
cmp ecx, 1
jle 0x56e723
mov eax, 1
jmp 0x56e750
mov eax, dword [esp + 0x190]
mov dword [esp], eax
mov eax, dword [esp + 0x194]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 8], eax
call fcn.0056ad90
movzx eax, byte [esp + 0xc]
xor eax, 1
mov byte [esp + 0x57], al
mov ecx, dword [esp + 0x74]
cmp ecx, 0x15
je 0x56eab4
cmp ecx, 0x16
je 0x56f0a1
cmp ecx, 0x19
jne 0x56efcf
mov ecx, dword [esp + 0x70]
test ecx, 0x200
jne 0x56e78e
lea edx, [0x622d88]
mov ebx, dword [esp + 0x110]
jmp 0x56e7b6
mov eax, dword [esp + 0x110]
mov dword [esp], eax
mov edx, dword [esp + 0x10c]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004af030
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov edx, eax
lea edi, [esp + 0x114]
xor eax, eax
call fcn.00470113
mov ecx, dword [edx + 0x38]
mov dword [esp], ebx
mov edx, dword [esp + 0x174]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x178]
mov dword [esp + 8], ebx
call ecx
movzx ecx, byte [esp + 0x40]
mov byte [esp + 0x55], cl
lea edi, [esp + 0x114]
lea esi, [esp + 0xc]
call fcn.004705ae
lea edi, [esp + 0x8c]
lea esi, [esp + 0x114]
call fcn.004705ae
movzx ecx, byte [esp + 0x55]
test cl, cl
je 0x56efcf
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x110]
mov dword [esp], ebx
mov ebx, dword [esp + 0x10c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.004a9d80
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x110], ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10c], edx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x74], ebx
mov ebp, dword [esp + 0x28]
lea edi, [esp + 0xc8]
lea esi, [esp + 0x8c]
call fcn.004705ae
mov ecx, dword [esp + 0xd4]
test ecx, ecx
je 0x56e981
mov dword [esp + 0x100], ebp
mov dword [esp + 0x6c], eax
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov eax, dword [esp + 0x174]
mov dword [esp], eax
mov ecx, dword [esp + 0x178]
mov dword [esp + 4], ecx
call fcn.0040e820
mov eax, dword [esp + 8]
lea ecx, [0x5b1e40]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x64]
test eax, eax
je 0x56e91a
mov eax, dword [eax + 4]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x164]
mov dword [esp], eax
lea ecx, [0x5e8632]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x2b
lea ecx, [esp + 0x148]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 2
call fcn.0056ae90
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x10c]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x100]
test eax, eax
je 0x56e9f5
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
je 0x56e9a0
mov eax, dword [eax + 4]
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], ebp
mov eax, dword [esp + 0x164]
mov dword [esp], eax
lea ecx, [0x5da150]
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
lea ecx, [esp + 0x158]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.0056ae90
mov edx, dword [esp + 0x10c]
mov ebx, dword [esp + 0x74]
movzx eax, byte [esp + 0x57]
test al, al
je 0x56ea91
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
mov eax, dword [esp + 0x174]
mov dword [esp], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 4], eax
call fcn.0040e820
mov eax, dword [esp + 8]
lea ecx, [0x5b1e40]
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x164]
mov dword [esp], eax
lea eax, [0x5e9ae6]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x32
lea eax, [esp + 0x158]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.0056ae90
mov edx, dword [esp + 0x10c]
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x110]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], edx
mov dword [esp + 0x1b0], ebx
add esp, 0x160
ret
mov eax, dword [esp + 0x174]
mov dword [esp], eax
mov ecx, dword [esp + 0x178]
mov dword [esp + 4], ecx
call fcn.0040e820
mov eax, dword [esp + 8]
lea ecx, [0x5b1e40]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], eax
mov edx, dword [esp + 0xc0]
test edx, edx
je 0x56eb0a
movzx ebx, byte [edx + 0xf]
nop
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x56eb10
or ebx, 0x80
jmp 0x56eb10
xor ebx, ebx
xor edx, edx
xor eax, eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x7c], eax
test ebx, ebx
je 0x56eb32
test ebx, 0x200
jne 0x56eb32
mov ebp, edx
lea esi, [0x622d88]
jmp 0x56eb5e
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.004af030
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
lea ecx, [0x5b1e40]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x78]
mov esi, eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x84], edx
mov dword [esp + 0x60], esi
mov edi, dword [esp + 0x70]
test edi, 0x200
jne 0x56eb8f
lea ecx, [0x622d88]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x110]
mov dword [esp + 0x80], ecx
jmp 0x56ebc0
mov eax, dword [esp + 0x110]
mov dword [esp], eax
mov ecx, dword [esp + 0x10c]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.004af030
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x80], ebx
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x4c]
mov ecx, dword [esp + 0x80]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x84]
mov dword [esp], ecx
call eax
movzx eax, byte [esp + 0xc]
test al, al
je 0x56efcf
movzx eax, byte [esp + 0x57]
test al, al
je 0x56ec84
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
mov eax, dword [esp + 0x174]
mov dword [esp], eax
mov ecx, dword [esp + 0x178]
mov dword [esp + 4], ecx
call fcn.0040e820
mov eax, dword [esp + 8]
lea ecx, [0x5b1e40]
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x164]
mov dword [esp], eax
lea edx, [0x5e66b3]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x24
lea edx, [esp + 0x158]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.0056ae90
mov eax, dword [esp + 0x110]
mov dword [esp], eax
mov ecx, dword [esp + 0x10c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x70]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x14], ebx
call fcn.004abce0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x56ee0c
mov eax, dword [esp + 0x164]
mov ebx, dword [eax]
mov ebx, dword [ebx + 0xc]
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
jne 0x56ecec
xor eax, eax
jmp 0x56ee0c
cmp ebx, 1
jne 0x56ed5e
mov eax, dword [esp + 0x70]
test eax, 0x200
jne 0x56ed0b
lea eax, [0x622d88]
mov ebx, dword [esp + 0x110]
jmp 0x56ed31
mov ecx, dword [esp + 0x110]
mov dword [esp], ecx
mov ecx, dword [esp + 0x10c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004af030
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov eax, dword [eax + 0x28]
mov dword [esp], ebx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004af9f0
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
jmp 0x56ee0c
cmp ebx, 2
je 0x56ed6a
xor eax, eax
jmp 0x56ee0c
mov dword [esp + 0x108], edx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
mov eax, dword [esp + 0x174]
mov dword [esp], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 4], eax
call fcn.0040e820
mov eax, dword [esp + 8]
lea ecx, [0x5b1e40]
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x164]
mov dword [esp], eax
lea eax, [0x5e32ac]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1b
lea eax, [esp + 0x158]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.0056ae90
xor eax, eax
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x108]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], edx
mov dword [esp + 0x1b0], eax
add esp, 0x160
ret
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x164]
mov dword [esp], ebx
mov ebx, dword [esp + 0x168]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x16c]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x170]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x1c], 0
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x194]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x44], eax
call fcn.0056f260
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1b0], edx
add esp, 0x160
ret
mov eax, dword [esp + 0x164]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0xc]
cmp dword [ecx + 0x1c], 2
jne 0x56efa1
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
mov eax, dword [esp + 0x174]
mov dword [esp], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 4], eax
call fcn.0040e820
mov eax, dword [esp + 8]
lea ecx, [0x5b1e40]
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x164]
mov dword [esp], eax
lea eax, [0x5e401a]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1d
lea eax, [esp + 0x158]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.0056ae90
mov eax, dword [0x74d268]
mov ecx, dword [0x74d26c]
mov edx, dword [0x74d270]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1b0], edx
add esp, 0x160
ret
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov eax, dword [esp + 0x174]
mov dword [esp], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 4], eax
call fcn.0040e820
mov eax, dword [esp + 8]
lea ecx, [0x5b1e40]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x64]
test eax, eax
je 0x56f038
mov eax, dword [eax + 4]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x164]
mov dword [esp], eax
lea eax, [0x5e5c50]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x22
lea eax, [esp + 0x148]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 2
call fcn.0056ae90
lea eax, [0x5b1e40]
mov dword [esp], eax
lea eax, [0x621b20]
mov dword [esp + 4], eax
call fcn.0043d570
mov eax, dword [esp + 0x70]
test eax, 0x200
jne 0x56f224
lea eax, [0x622d88]
mov ecx, dword [esp + 0x110]
mov eax, dword [eax + 0x28]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0xfc], ecx
mov edx, dword [eax + 0x50]
mov dword [esp], ecx
call edx
cmp dword [esp + 4], 0x19
je 0x56f1c2
movzx eax, byte [esp + 0x56]
test al, al
je 0x56efcf
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov eax, dword [esp + 0x64]
test eax, eax
je 0x56f1bb
mov ecx, dword [eax + 4]
mov dword [esp + 0x148], ecx
mov eax, dword [esp + 0x88]
mov dword [esp + 0x14c], eax
mov ecx, dword [esp + 0x174]
mov dword [esp], ecx
mov edx, dword [esp + 0x178]
mov dword [esp + 4], edx
call fcn.0040e820
mov eax, dword [esp + 8]
lea ecx, [0x5b1e40]
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x164]
mov dword [esp], eax
lea edx, [0x5e396d]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x1c
lea edx, [esp + 0x148]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 2
call fcn.0056ae90
jmp 0x56efcf
mov ecx, eax
jmp 0x56f133
lea edi, [esp + 0x114]
xor eax, eax
call fcn.00470113
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + 0x38]
mov edx, dword [esp + 0xfc]
mov dword [esp], edx
mov edx, dword [esp + 0x174]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x178]
mov dword [esp + 8], ebx
call ecx
movzx ecx, byte [esp + 0x40]
mov byte [esp + 0x54], cl
lea edi, [esp + 0x114]
lea esi, [esp + 0xc]
call fcn.004705ae
movzx ecx, byte [esp + 0x54]
test cl, cl
jne 0x56f0eb
jmp 0x56efcf
mov ecx, dword [esp + 0x110]
mov dword [esp], ecx
mov ecx, dword [esp + 0x10c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004af030
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x56f0bd
call fcn.0046eae0
jmp fcn.0056e4e0