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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x330
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov eax, dword [0x603024]
xor eax, ebp
mov dword [esp + 0x328], eax
xor ecx, ecx
dec ecx
lea eax, [esp + 0x60]
mov dword [eax + 0x64], ecx
mov dword [eax + 0x60], ecx
pcmpeqd xmm0, xmm0
movdqa xmmword [eax + 0x50], xmm0
movdqa xmmword [eax + 0x40], xmm0
movdqa xmmword [eax + 0x30], xmm0
movdqa xmmword [eax + 0x20], xmm0
movdqa xmmword [eax + 0x10], xmm0
movdqa xmmword [eax], xmm0
mov ecx, dword [edx + 0x14]
mov esi, dword [edx + 0x28]
add esi, dword [ecx + edi*4]
lea edx, [esp + 0x38]
mov dword [edx], esi
mov ebx, dword [ecx + edi*4 + 4]
sub ebx, dword [ecx + edi*4]
mov dword [edx + 4], ebx
push edx
push eax
call fcn.0056c4c0
add esp, 8
mov ebx, eax
test eax, eax
je 0x56f722
mov ecx, dword [esp + 0x328]
xor ecx, ebp
call fcn.00504b53
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, 0xb
cmp dword [esp + 0x3c], 0
jne 0x56f70a
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x20]
mov edx, dword [ebp + 0xc]
movzx eax, byte [eax + edx]
cmp dword [esp + 0x6c], eax
jne 0x56f70a
push edx
push ecx
mov edi, ecx
call fcn.0056c950
add esp, 8
xor eax, dword [ebp + 0x20]
or eax, edx
jne 0x56f70a
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], eax
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ecx + ebx*4]
shl ecx, 3
add ecx, dword [edi + 8]
mov dword [esp + 0x2c], ecx
mov edx, dword [edx + ebx*4]
shl edx, 3
add edx, dword [edi + 0x24]
mov dword [esp + 0x31c], eax
mov dword [esp + 0x318], eax
mov dword [esp + 0x320], eax
mov eax, dword [esp + 0x60]
lea ecx, [eax - 1]
cmp ecx, 3
ja 0x57006c
cmp byte [esp + 0xa0], 1
jne 0x57006c
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x56f7d0
cmp ecx, 0x30101
je 0x56f7d0
cmp ecx, 0x21
jne 0x57006c
cmp eax, 4
je 0x56ff93
cmp eax, 1
jne 0x57006c
cmp dword [esp + 0x68], 1
jne 0x57006c
cmp dword [esp + 0x70], 0
jne 0x57006c
cmp dword [esp + 0x64], 0
jne 0x57006c
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x20]
mov edi, dword [ebp + 0x1c]
add edx, edi
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], 0
cmp ecx, 0x30100
jg 0x56f845
test ecx, ecx
je 0x56f85d
cmp ecx, 0x21
je 0x56f85d
jmp 0x57006c
cmp ecx, 0x303011b
je 0x56f9ab
cmp ecx, 0x30101
jne 0x57006c
xor edi, edi
cmp eax, 4
jne 0x56f8d2
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + ecx*8]
mov dword [esp + 0xc], eax
mov eax, dword [edx + ecx*8 + 4]
mov edi, dword [ecx*4 + 0x5eb380]
cmp ecx, 1
ja 0x56ff5e
mov dword [esp + 8], edi
mov ebx, 2
test eax, eax
jne 0x570071
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax]
call dword [section..00cfg]
mov edi, dword [esp + 0xc]
push edi
push dword [ebp + 0x24]
call ecx
add esp, 8
mov edx, eax
test eax, eax
je 0x570136
xor eax, eax
inc eax
sub eax, dword [esp + 0x14]
mov dword [esp + 0x18], edx
mov dword [esp + eax*4 + 0x50], edx
mov dword [esp + eax*4 + 0x318], edi
mov edi, dword [esp + 8]
jmp 0x56f8e0
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + edi*8]
mov ecx, dword [edx + edi*8 + 4]
mov ebx, edi
mov edi, dword [edx + edi*8 + 0xc]
mov edx, dword [edx + ebx*8 + 8]
sub edx, eax
mov dword [esp + 8], edx
sbb edi, ecx
mov dword [esp + 0x10], edi
add eax, dword [ebp + 0x14]
adc ecx, dword [ebp + 0x18]
push ecx
push eax
push dword [ebp + 0x10]
call fcn.005702d0
add esp, 0xc
test eax, eax
jne 0x570121
mov eax, dword [esp + 0x14]
lea eax, [eax + eax*2]
lea ecx, [esp + eax*4]
add ecx, 0x98
mov edx, dword [ecx + 4]
cmp edx, 0x30101
je 0x56fbc8
cmp edx, 0x21
lea ebx, [esp + 0xd0]
je 0x56fda1
test edx, edx
jne 0x57006c
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
xor eax, ecx
mov edx, dword [esp + 0x10]
or eax, edx
mov eax, dword [ebp + 0x10]
jne 0x5701aa
push dword [esp + 0x18]
push eax
call fcn.00570200
add esp, 8
test eax, eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jne 0x570121
inc ecx
mov eax, dword [esp + 0x60]
cmp ecx, eax
jae 0x5701da
mov ebx, ecx
mov dword [esp + 0x14], ecx
lea ecx, [ecx + ecx*2]
mov ecx, dword [esp + ecx*4 + 0x9c]
jmp 0x56f82f
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov ecx, dword [eax + 0x14]
mov edi, dword [eax + 0x10]
sub edi, edx
mov dword [esp + 0x10], ebx
sbb ecx, ebx
cmp dword [esp + 0x14], 3
jne 0x57006c
mov dword [esp + 0x18], edx
mov dword [esp + 0x320], edi
mov ebx, 2
mov dword [esp + 0x30], ecx
test ecx, ecx
jne 0x570071
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax]
call dword [section..00cfg]
push edi
push dword [ebp + 0x24]
call ecx
add esp, 8
mov dword [esp + 0x58], eax
mov dword [esp + 8], eax
test eax, eax
jne 0x56fa12
test edi, edi
jne 0x570071
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x18]
add eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x10]
adc ecx, dword [ebp + 0x18]
push ecx
push eax
mov edi, dword [ebp + 0x10]
push edi
call fcn.005702d0
add esp, 0xc
test eax, eax
mov dword [esp + 0x24], 1
jne 0x570121
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
push dword [esp + 8]
push edi
call fcn.00570200
add esp, 8
test eax, eax
jne 0x570121
mov eax, dword [esp + 0x318]
test al, 3
mov ecx, dword [esp + 0x20]
jne 0x5701aa
mov ebx, dword [esp + 0x31c]
test bl, 3
jne 0x5701aa
mov edi, eax
add eax, ecx
add eax, ebx
cmp eax, dword [ebp + 0x20]
mov dword [esp + 0x20], ecx
jne 0x5701aa
push 0x218
push 0xff
lea eax, [esp + 0x100]
push eax
call fcn.005072d0
add esp, 0xc
mov eax, dword [esp + 0x28]
mov dword [esp + 0xd0], eax
mov ecx, dword [esp + 0x20]
add eax, ecx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xd4], eax
add edi, eax
mov dword [esp + 0xe4], edi
mov eax, dword [esp + 0x54]
mov dword [esp + 0xd8], eax
add ebx, eax
mov dword [esp + 0xe8], ebx
mov eax, dword [esp + 8]
mov dword [esp + 0xdc], eax
add eax, dword [esp + 0xc]
mov dword [esp + 0xec], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xf4], eax
lea edi, [esp + 0xd0]
push edi
call fcn.00585960
add esp, 4
push edi
call fcn.005859a0
add esp, 4
test eax, eax
jne 0x5701eb
mov eax, dword [esp + 0xd0]
cmp eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jne 0x5701ef
mov eax, dword [esp + 0xd4]
cmp eax, dword [esp + 0xe4]
jne 0x5701ef
mov eax, dword [esp + 0xd8]
cmp eax, dword [esp + 0xe8]
jne 0x5701ef
mov eax, dword [esp + 0xdc]
cmp eax, dword [esp + 0xec]
jne 0x5701ef
cmp dword [esp + 0x108], 0
jne 0x5701ef
mov eax, dword [esp + 0xf0]
cmp eax, dword [esp + 0xf4]
jne 0x5701aa
cmp dword [esp + 0xf8], 0
je 0x56f989
jmp 0x5701aa
movzx eax, byte [esp + eax*4 + 0xa1]
mov ecx, dword [ecx]
add ecx, esi
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0x120], xmm0
movdqa xmmword [esp + 0x110], xmm0
movdqa xmmword [esp + 0x100], xmm0
movdqa xmmword [esp + 0xf0], xmm0
mov dword [esp + 0x130], 0xffffffff
xor edx, edx
mov dword [esp + 0xe0], edx
mov dword [esp + 0xd8], edx
push dword [ebp + 0x24]
push eax
push ecx
lea edi, [esp + 0xdc]
push edi
call fcn.00587f50
add esp, 0x10
test eax, eax
jne 0x570121
mov eax, dword [esp + 0x18]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xe4], eax
push edi
call fcn.00585cd0
add esp, 4
mov dword [esp + 0x4c], 0
mov ecx, 0x40000
mov edx, dword [esp + 8]
cmp edx, ecx
mov eax, 0x40000
cmovb eax, edx
mov ebx, dword [esp + 0x10]
test ebx, ebx
cmovne eax, ecx
mov dword [esp + 0x48], eax
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi]
call dword [section..00cfg]
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x50]
push eax
push edi
mov edi, ebx
call ecx
add esp, 0xc
test eax, eax
jne 0x570128
mov eax, dword [esp + 0x48]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], 0xffffffff
lea eax, [esp + 0x40]
push eax
push 1
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x58]
push dword [esp + 0x1c]
lea eax, [esp + 0xe4]
push eax
call fcn.00585cf0
add esp, 0x18
mov ebx, dword [esp + 0x44]
sub dword [esp + 0x48], ebx
mov ecx, dword [esp + 8]
sub ecx, ebx
sbb edi, 0
test eax, eax
jne 0x570128
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x40]
cmp ecx, 1
je 0x570184
mov eax, dword [esp + 0xe8]
cmp eax, dword [esp + 0xc]
jne 0x56fd39
mov edx, dword [esp + 8]
or edx, edi
jne 0x56fd39
cmp ecx, 4
je 0x5701b2
test ebx, ebx
jne 0x56fd47
cmp dword [esp + 0x10], eax
je 0x5701d2
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
call dword [section..00cfg]
push ebx
mov ebx, dword [ebp + 0x10]
push ebx
call ecx
add esp, 8
test eax, eax
jne 0x570128
mov dword [esp + 0x4c], 0
mov ecx, 0x40000
mov edx, dword [esp + 8]
cmp edx, ecx
mov eax, 0x40000
cmovb eax, edx
test edi, edi
cmovne eax, ecx
mov dword [esp + 0x48], eax
mov ecx, dword [ebx]
call dword [section..00cfg]
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x50]
push eax
push ebx
jmp 0x56fca5
mov dl, byte [esp + eax*4 + 0xa1]
mov eax, dword [ecx]
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0x130], xmm0
movdqa xmmword [esp + 0x120], xmm0
movdqa xmmword [esp + 0x110], xmm0
movdqa xmmword [esp + 0x100], xmm0
movdqa xmmword [esp + 0xd0], xmm0
mov dword [esp + 0x140], 0xffffffff
xor ecx, ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xe8], ecx
cmp dl, 1
jne 0x5701aa
movzx eax, byte [esi + eax]
push dword [ebp + 0x24]
push eax
push ebx
call fcn.00588090
add esp, 0xc
test eax, eax
jne 0x570121
mov eax, dword [esp + 0x18]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xf4], eax
push ebx
call fcn.00588110
add esp, 4
mov dword [esp + 0x4c], 0
mov ecx, 0x40000
mov edx, dword [esp + 8]
cmp edx, ecx
mov eax, 0x40000
cmovb eax, edx
mov edi, dword [esp + 0x10]
test edi, edi
cmovne eax, ecx
mov dword [esp + 0x48], eax
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebx]
call dword [section..00cfg]
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x50]
push eax
push ebx
call ecx
add esp, 0xc
test eax, eax
jne 0x570107
mov eax, dword [esp + 0x48]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], 0xffffffff
lea eax, [esp + 0x40]
push eax
push 1
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x58]
push dword [esp + 0x1c]
lea eax, [esp + 0xe4]
push eax
call fcn.00588140
add esp, 0x18
mov ebx, dword [esp + 0x44]
sub dword [esp + 0x48], ebx
mov ecx, dword [esp + 8]
sub ecx, ebx
sbb edi, 0
test eax, eax
jne 0x570107
cmp dword [esp + 0x40], 1
je 0x570143
test ebx, ebx
jne 0x56ff0c
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0xf8]
je 0x57017f
mov dword [esp + 8], ecx
mov dword [esp + 0x10], edi
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi + 4]
call dword [section..00cfg]
push ebx
mov ebx, edi
push edi
call ecx
add esp, 8
test eax, eax
jne 0x570107
mov dword [esp + 0x4c], 0
mov ecx, 0x40000
mov edx, dword [esp + 8]
cmp edx, ecx
mov eax, 0x40000
cmovb eax, edx
mov edi, dword [esp + 0x10]
test edi, edi
cmovne eax, ecx
mov dword [esp + 0x48], eax
jmp 0x56fe74
cmp ecx, 2
jne 0x57006c
mov ebx, eax
mov edx, dword [ebp + 0x20]
mov eax, dword [esp + 0xc]
sub edx, eax
mov ecx, 0
sbb ecx, ebx
jb 0x5701e1
add edx, dword [ebp + 0x1c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], edx
jmp 0x56f8e0
cmp byte [esp + 0xac], 1
jne 0x57006c
mov edi, edx
mov edx, dword [esp + 0xa8]
test edx, edx
je 0x56ffbf
cmp edx, 0x30101
je 0x56ffbf
cmp edx, 0x21
jne 0x57006c
cmp byte [esp + 0xb8], 1
jne 0x57006c
mov edx, dword [esp + 0xb4]
test edx, edx
je 0x56ffe9
cmp edx, 0x30101
je 0x56ffe9
cmp edx, 0x21
jne 0x57006c
cmp dword [esp + 0xc0], 0x303011b
jne 0x57006c
cmp byte [esp + 0xc4], 4
jne 0x57006c
cmp dword [esp + 0x68], 4
jne 0x57006c
cmp dword [esp + 0x70], 2
jne 0x57006c
cmp dword [esp + 0x74], 6
jne 0x57006c
cmp dword [esp + 0x78], 1
jne 0x57006c
cmp dword [esp + 0x7c], 0
jne 0x57006c
cmp dword [esp + 0x64], 3
jne 0x57006c
cmp dword [esp + 0x80], 5
jne 0x57006c
cmp dword [esp + 0x84], 0
jne 0x57006c
cmp dword [esp + 0x88], 4
jne 0x57006c
cmp dword [esp + 0x8c], 1
jne 0x57006c
cmp dword [esp + 0x90], 3
jne 0x57006c
mov edx, edi
cmp dword [esp + 0x94], 2
je 0x56f803
mov ebx, 4
mov edi, dword [ebp + 0x24]
mov ecx, dword [edi + 4]
mov esi, dword [esp + 0x50]
call dword [section..00cfg]
push esi
push edi
call ecx
add esp, 8
mov ecx, dword [edi + 4]
mov esi, dword [esp + 0x54]
call dword [section..00cfg]
push esi
push edi
call ecx
add esp, 8
mov ecx, dword [edi + 4]
mov esi, dword [esp + 0x58]
call dword [section..00cfg]
push esi
push edi
call ecx
add esp, 8
test ebx, ebx
jne 0x56f70a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
xor ebx, ebx
test eax, eax
je 0x56f70a
mov edx, dword [ebp + 0xc]
mov ecx, edx
shr ecx, 3
movzx eax, byte [eax + ecx]
mov ecx, edx
and cl, 7
shl eax, cl
test al, 0x80
je 0x56f70a
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
call fcn.0056f550
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x10]
xor edx, edx
mov esi, dword [ebp + 0xc]
cmp eax, dword [ecx + esi*4]
setne dl
lea ebx, [edx + edx*2]
jmp 0x56f70a
mov ebx, eax
push dword [ebp + 0x24]
lea eax, [esp + 0xe4]
push eax
call fcn.00587f20
add esp, 8
jmp 0x570071
mov ebx, eax
jmp 0x570071
mov ebx, eax
push dword [ebp + 0x24]
lea eax, [esp + 0xd4]
jmp 0x570113
test edi, edi
je 0x56f8b6
jmp 0x570071
mov ebx, ecx
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x10], eax
push dword [ebp + 0x24]
lea eax, [esp + 0xe4]
push eax
call fcn.00587f20
add esp, 8
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0xc]
jne 0x5701aa
or ebx, edi
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
je 0x56f989
jmp 0x5701aa
xor ebx, ebx
inc ebx
jmp 0x570109
mov ebx, dword [esp + 0xe8]
push dword [ebp + 0x24]
lea eax, [esp + 0xd4]
push eax
call fcn.00587f20
add esp, 8
cmp ebx, dword [esp + 0xc]
jne 0x5701aa
or dword [esp + 8], edi
jmp 0x57016f
xor ebx, ebx
inc ebx
jmp 0x570071
push dword [ebp + 0x24]
lea eax, [esp + 0xd4]
push eax
call fcn.00587f20
add esp, 8
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jmp 0x56f989
xor ebx, ebx
inc ebx
jmp 0x57012a
xor ebx, ebx
jmp 0x570071
mov ebx, 5
jmp 0x570071
mov dword [esp + 0x24], eax
mov ebx, dword [esp + 0x24]
jmp 0x570071