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

Disassembly:
sub esp, 0x70
push ebx
mov ebx, dword [esp + 0x78]
xor eax, eax
push ebp
push esi
push edi
mov edi, dword [ebx]
mov dword [esp + 0x18], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x2c], 0x86
mov dword [esp + 0x34], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x4c], eax
cmp dword [edi], eax
jne 0x56c364
push 0x28
push edi
call fcn.0057b880
add esp, 8
mov ebp, eax
cmp dword [edi], 0
mov dword [esp + 0x14], ebp
jne 0x56c364
mov edx, dword [esp + 0x8c]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x88]
movups xmmword [ebp], xmm0
movups xmmword [ebp + 0x10], xmm0
movq qword [ebp + 0x20], xmm0
mov eax, dword [edx + 8]
mov dword [ebp], eax
mov dword [ebp + 0x10], ecx
mov dword [edx + 8], ebp
mov edx, 0x96
movzx eax, word [ecx]
lea esi, [edx + 1]
cmp ax, dx
je 0x56b1ca
mov edx, eax
cmp ax, si
jne 0x56b1dc
movzx edx, word [ecx + 2]
add ecx, 2
mov dword [esp + 0x2c], eax
mov dword [esp + 0x88], ecx
movzx eax, dx
mov dword [esp + 0x20], eax
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
movzx eax, word [ecx]
cmp eax, 0x78
je 0x56b1e3
mov dword [esp + 0x1c], eax
cmp eax, 0x79
jne 0x56b25a
sub ecx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov eax, ecx
sar eax, 1
mov eax, dword [esi + eax*4]
test eax, eax
je 0x56b25a
mov dword [esp + 0x40], eax
lea eax, [ecx + 2]
sar eax, 1
mov eax, dword [esi + eax*4]
mov dword [esp + 0x78], eax
lea eax, [ecx + 4]
sar eax, 1
mov eax, dword [esi + eax*4]
mov dword [esp + 0x38], eax
lea eax, [ecx + 6]
mov ecx, dword [esp + 0x38]
sar eax, 1
mov eax, dword [esi + eax*4]
mov dword [esp + 0x70], eax
cmp ecx, 0x27
jne 0x56b247
mov dword [esp + 0x1c], 0x7a
jmp 0x56b25a
mov eax, dword [esp + 0x1c]
cmp ecx, 0x28
mov esi, 0x7b
cmove eax, esi
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x7c], 0x8a
mov dword [esp + 0x74], 0x8d
mov dword [esp + 0x60], 0x82
movzx eax, word [ecx + 2]
lea esi, [ecx + 4]
mov dword [esp + 0x10], esi
mov dword [esp + 0x64], 0x83
mov dword [esp + 0x30], 0x84
lea eax, [ecx + eax*2]
mov dword [esp + 0x68], 0x85
movzx ecx, word [eax]
mov dword [esp + 0x44], eax
xor eax, eax
cmp ecx, 0x78
mov dword [esp + 0x50], 0x8b
mov dword [esp + 0x5c], 0x92
sete al
mov dword [esp + 0x54], 0x95
mov dword [esp + 0x28], eax
mov eax, 0x88
mov dword [esp + 0x58], 0xa2
mov dword [esp + 0x3c], 0x8f
cmp dx, word [esp + 0x7c]
je 0x56b2ed
cmp dx, word [esp + 0x3c]
jne 0x56b33c
movzx eax, word [esi]
cmp ax, word [esp + 0x5c]
jb 0x56b2fe
cmp ax, word [esp + 0x54]
jbe 0x56b30d
mov dword [esp + 0x28], 1
cmp ax, word [esp + 0x58]
jne 0x56b315
mov dword [esp + 0x28], 0
mov eax, 0x8a
cmp dx, ax
jne 0x56b337
cmp ecx, 0x7a
je 0x56b32d
cmp ecx, 0x7b
jne 0x56b3e7
mov dword [esp + 0x20], 0x8f
jmp 0x56b372
mov eax, 0x88
cmp dx, ax
je 0x56b3b8
cmp dx, word [esp + 0x74]
je 0x56b3b8
cmp dx, word [esp + 0x60]
je 0x56b372
cmp dx, word [esp + 0x64]
je 0x56b372
cmp dx, word [esp + 0x30]
je 0x56b372
cmp dx, word [esp + 0x68]
je 0x56b372
cmp dx, word [esp + 0x50]
je 0x56b372
cmp dx, word [esp + 0x3c]
jne 0x56b3e7
mov edx, dword [esp + 0x88]
mov ecx, edx
sub ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
sar ecx, 1
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x18], eax
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 0x30]
cmp word [esp + 0x20], ax
jne 0x56b3e7
lea eax, [esp + 0x6c]
push eax
push 0
push 0
push edx
push ebx
call fcn.0057ee40
mov dword [ebp + 0x20], eax
add esp, 0x14
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x34], eax
jmp 0x56b3e7
movzx ecx, word [esi]
mov eax, dword [ebx + 0x14]
lea edx, [ecx + ecx]
cmp byte [ecx + eax], 0
mov dword [esp + 0x48], edx
jne 0x56b3d3
mov eax, dword [ebx + 0x20]
lea eax, [eax + ecx*4]
jmp 0x56b3d9
mov eax, dword [ebx + 0x24]
lea eax, [eax + edx*4]
add esi, 2
mov dword [esp + 0x18], eax
mov dword [ebp + 0x24], eax
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x1c]
xor ecx, ecx
cmp dx, 0x7a
je 0x56b405
cmp dx, 0x7b
jne 0x56b40a
mov eax, 0x97
cmp word [esp + 0x2c], ax
je 0x56b40a
mov ecx, 1
mov ebp, 0x96
lea eax, [ecx + 1]
cmp word [esp + 0x2c], bp
mov ebp, dword [esp + 0x14]
cmovne eax, ecx
test eax, eax
je 0x56b430
push eax
push ebx
call fcn.00566cb0
mov edx, dword [esp + 0x24]
add esp, 8
xor eax, eax
cmp dx, 0x7a
je 0x56b44a
cmp dx, 0x7b
jne 0x56b471
mov eax, 0x97
cmp word [esp + 0x2c], ax
je 0x56b4be
cmp dword [edi], 0
jne 0x56b46c
push 0
push 0x8b
push 0
push 0x40
push 1
push edi
call fcn.0057b520
add esp, 0x18
test eax, eax
je 0x56b46c
mov byte [eax], 0xc7
mov eax, 1
mov ecx, dword [esp + 0x2c]
mov edx, 0x96
cmp cx, dx
jne 0x56b4b0
cmp dword [edi], 0
jne 0x56b645
shl eax, 2
push eax
push 0x8b
push 0
push 2
push 1
push edi
call fcn.0057b520
add esp, 0x18
test eax, eax
je 0x56b645
mov byte [eax], 0x89
jmp 0x56b645
mov eax, 0x97
cmp cx, ax
jne 0x56b645
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
cmp word [esp + 0x1c], 0x7b
je 0x56b500
push 1
push ebx
call fcn.0057ece0
push 0
push 0x40
push 0
push 2
push 0
push edi
call fcn.005858e0
add esp, 0x20
mov dword [esp + 0x4c], eax
jmp 0x56b645
mov eax, dword [esp + 0x20]
cmp ax, word [esp + 0x30]
je 0x56b566
cmp ax, word [esp + 0x50]
jae 0x56b566
push 0
push 0x40
push 0
push 2
push 1
push edi
call fcn.005858e0
push 4
push 0x8b
push 0
push 2
push 0x20
push edi
mov esi, eax
call fcn.00586ef0
push edi
call fcn.00586cc0
add esp, 0x34
mov ecx, eax
test esi, esi
je 0x56b641
test ecx, ecx
je 0x56b641
mov eax, dword [esi + 8]
and eax, 0xfffffffd
mov dword [esi + 0xc], ecx
or eax, 1
mov dword [esi + 8], eax
jmp 0x56b641
push 0
push 0x40
push 0
push 2
push 1
push edi
call fcn.005858e0
push 4
push 0x8b
push 0
push 2
push 0x20
push edi
mov esi, eax
call fcn.00586ef0
push 0x22
push edi
call fcn.00586c30
push edi
mov ebp, eax
call fcn.00586cc0
add esp, 0x3c
mov ecx, eax
test esi, esi
je 0x56b5b7
test ecx, ecx
je 0x56b5b7
mov eax, dword [esi + 8]
and eax, 0xfffffffd
mov dword [esi + 0xc], ecx
or eax, 1
mov dword [esi + 8], eax
mov eax, dword [esp + 0x30]
cmp word [esp + 0x20], ax
jne 0x56b5f6
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x20], 0
jl 0x56b5f6
push dword [esp + 0x18]
push 0x8d
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
mov eax, 0xfffffffe
add esp, 0x18
sub eax, dword [esi + 0x20]
mov ecx, 0x81
shl eax, 2
jmp 0x56b5ff
mov eax, dword [esp + 0x18]
mov ecx, 0x8d
push eax
push ecx
push 0
push 2
push 0
push edi
call fcn.005858e0
push edi
mov esi, eax
call fcn.00586cc0
add esp, 0x1c
mov dword [esp + 0x4c], esi
mov ecx, eax
test ebp, ebp
je 0x56b63d
mov dword [esp + 0x4c], esi
test ecx, ecx
je 0x56b63d
mov eax, dword [ebp + 8]
and eax, 0xfffffffd
mov dword [ebp + 0xc], ecx
or eax, 1
mov dword [esp + 0x4c], esi
mov dword [ebp + 8], eax
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x38], 0
je 0x56b67a
push dword [esp + 0x70]
push 0x40
push dword [esp + 0x48]
push 0x8d
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
cmp dword [esp + 0x38], 0x29
jne 0x56b67a
push edi
call fcn.00586cc0
add esp, 4
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
cmp ax, 0x7b
jne 0x56b709
push edi
call fcn.00586cc0
add esp, 4
mov dword [ebp + 0x18], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
cmp ax, word [esp + 0x30]
jne 0x56b95d
mov edx, dword [esp + 0x34]
xor esi, esi
test edx, edx
je 0x56b6d0
push dword [ebx + 0x44]
push 0x8d
push esi
push 3
push 0x20
push edi
call fcn.00586ef0
mov edx, dword [esp + 0x4c]
add esp, 0x18
mov esi, 1
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x1c]
test eax, eax
jns 0x56b862
cmp cx, 0x7b
jne 0x56b750
add esi, 2
test edx, edx
jne 0x56b77d
push dword [esp + 0x18]
push 0x8d
push edx
push 3
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
jmp 0x56b77d
cmp ax, 0x7a
jne 0x56b694
push edi
call fcn.00586cc0
mov ecx, dword [esp + 0x2c]
add esp, 4
mov edx, eax
mov dword [esp + 0x24], edx
test ecx, ecx
je 0x56b698
mov eax, dword [esp + 0x20]
add eax, 0xffffff7a
cmp ax, 4
ja 0x56b698
cmp dword [esp + 0x38], 0
jne 0x56b698
mov dword [ebp + 0x14], edx
jmp 0x56b698
cmp eax, 0xffffffff
jne 0x56b76d
push 0
push 0xb
push dword [esp + 0x20]
push 0x8d
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
cmp word [esp + 0x1c], 0x7a
je 0x56b77c
cmp dword [esp + 0x28], 0
je 0x56b77d
inc esi
test esi, esi
je 0x56b78b
push esi
push ebx
call fcn.00566cb0
add esp, 8
mov ecx, dword [esp + 0x34]
xor esi, esi
test ecx, ecx
je 0x56b7b4
push 0
push 3
push 0
push 0x8b
push 0x20
push edi
mov esi, 1
call fcn.00586ef0
mov ecx, dword [esp + 0x4c]
add esp, 0x18
mov eax, dword [esp + 0x1c]
cmp ax, 0x7b
jne 0x56b844
test ecx, ecx
je 0x56b7de
push dword [esp + 0x18]
push 0x8d
push 0
push 3
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
push 0
push 2
shl esi, 2
push esi
push 0x8b
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
cmp dword [ebp + 0x20], 0xffffffff
jne 0x56b827
xor eax, eax
cmp dword [esp + 0x34], eax
setne al
lea eax, [eax*4 + 4]
push eax
push 0x40
push 0
push 0xb
push dword [esp + 0x28]
push 0x8d
push 0x60
push edi
call fcn.00587130
add esp, 0x20
push 0
push 3
lea eax, [esi + 4]
push eax
push 0x8b
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
jmp 0x56bc86
cmp ax, 0x7a
je 0x56b855
cmp dword [esp + 0x28], 0
je 0x56bc86
push 0
push 2
lea eax, [esi*4]
jmp 0x56b82e
cmp cx, 0x79
jne 0x56b86f
cmp dword [esp + 0x28], 0
je 0x56b870
inc esi
inc eax
add esi, eax
push esi
push ebx
call fcn.00566cb0
add esp, 8
cmp dword [esp + 0x34], 0
je 0x56b89a
push 0
push 3
push 0
push 0x8b
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
push dword [esp + 0x18]
push 0x8d
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
lea eax, [esi*4]
push eax
push 0x40
push 0
push 0xb
push 0
push 3
push 0x60
push edi
call fcn.00587130
xor eax, eax
add esp, 0x38
cmp dword [esp + 0x34], eax
setne al
cmp word [esp + 0x1c], 0x79
mov dword [esp + 0x70], eax
jne 0x56b8e8
cmp dword [esp + 0x28], 0
je 0x56b90a
push 0
push 2
shl eax, 2
push eax
push 0x8b
push 0x20
push edi
call fcn.00586ef0
mov esi, dword [esp + 0x88]
add esp, 0x18
inc esi
jmp 0x56b90e
mov esi, dword [esp + 0x70]
push 0
push 3
push dword [esp + 0x20]
push 0x8d
push 0x20
push edi
call fcn.00586ef0
push 0
push 1
lea eax, [esi*4]
push eax
push 0x8b
push 0x20
push edi
call fcn.00586ef0
lea eax, [esi + 1]
push eax
mov eax, dword [ebp + 0x20]
add eax, esi
push eax
push 0
push dword [esp + 0xc4]
push ebx
call fcn.0057fb40
add esp, 0x44
jmp 0x56bc86
mov edx, 0x88
cmp ax, dx
je 0x56b9d2
cmp ax, word [esp + 0x74]
je 0x56b9d2
cmp ax, word [esp + 0x60]
je 0x56ba5a
cmp ax, word [esp + 0x64]
je 0x56ba5a
cmp ax, word [esp + 0x68]
je 0x56ba5a
cmp ax, word [esp + 0x50]
je 0x56ba5a
mov edx, dword [esp + 0x3c]
cmp ax, dx
je 0x56ba5a
test ecx, ecx
je 0x56baaa
push 1
push ebx
call fcn.00566cb0
push 0
push 2
push 0
push 0x8b
push 0x20
push edi
call fcn.00586ef0
add esp, 0x20
jmp 0x56baa2
mov ecx, dword [esp + 0x48]
mov eax, dword [ebx + 0x14]
shr ecx, 1
cmp byte [ecx + eax], 0
je 0x56ba5a
push 2
push ebx
call fcn.00566cb0
push dword [esp + 0x20]
push 0x8d
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
mov eax, dword [esp + 0x38]
add eax, 4
push eax
push 0x8d
push 0
push 3
push 0x20
push edi
call fcn.00586ef0
push 0
push 2
push dword [esp + 0x58]
push 0x8d
push 0x20
push edi
call fcn.00586ef0
add esp, 0x50
push 0
push 1
push 0
push 0x8b
push 0x20
push edi
call fcn.00586ef0
push 0
push 3
push 4
push 0x8b
push 0x20
push edi
call fcn.00586ef0
add esp, 0x30
jmp 0x56baa2
push dword [esp + 0x18]
push 0x8d
push 0
push 3
push 0x20
push edi
call fcn.00586ef0
push 1
push ebx
call fcn.00566cb0
push 0
push 2
push dword [esp + 0x40]
push 0x8d
push 0x20
push edi
call fcn.00586ef0
push 0
push 3
push 0
push 0x8b
push 0x20
push edi
call fcn.00586ef0
add esp, 0x50
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
mov ecx, 0x8a
cmp ax, cx
je 0x56babd
cmp ax, dx
jne 0x56bc86
movzx eax, word [esi]
mov ecx, 0x90
cmp ax, cx
jne 0x56bb05
mov ecx, dword [ebx + 0x24]
lea eax, [ecx + 4]
push eax
movzx eax, word [esi + 2]
push 0x8d
lea eax, [ecx + eax*8]
push eax
push 0x8d
push 0
push edi
call fcn.005858e0
push eax
lea eax, [ebp + 0x20]
push eax
push edi
call fcn.00566c80
add esp, 0x24
add esi, 4
mov dword [esp + 0x10], esi
jmp 0x56bc86
mov ecx, 0x91
cmp ax, cx
jne 0x56bc03
movzx ecx, word [esi + 2]
imul ecx, dword [ebx + 0xb8]
mov eax, dword [ebx + 0xb0]
movzx ebp, word [esi + 4]
push 0
push 2
push 0
push 4
push 0x20
push edi
lea esi, [eax + ecx*2]
call fcn.00586ef0
mov eax, dword [ebx + 0x24]
add eax, 4
push eax
push 0x8d
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
movzx ecx, word [esi]
mov eax, dword [ebx + 0x24]
push 0
push 1
lea eax, [eax + ecx*8]
push eax
push 0x8d
push 0
push 3
push 0x262
push edi
call fcn.00587130
mov eax, dword [ebx + 0xb8]
dec ebp
add esp, 0x50
lea esi, [esi + eax*2]
test ebp, ebp
jle 0x56bbcd
movzx ecx, word [esi]
dec ebp
mov eax, dword [ebx + 0x24]
push 0
push 1
lea eax, [eax + ecx*8]
push eax
push 0x8d
push 0
push 2
push 0x62
push edi
call fcn.00587130
push 0
push 2
push 0
push 3
push 0
push 3
push 0x266
push edi
call fcn.00587130
mov eax, dword [ebx + 0xb8]
add esp, 0x40
lea esi, [esi + eax*2]
test ebp, ebp
jg 0x56bb86
push 0
push 4
push 0
push 2
push 0x20
push edi
call fcn.00586ef0
push 0
push edi
call fcn.00586c30
mov ebp, dword [esp + 0x34]
push eax
lea eax, [ebp + 0x20]
push eax
push edi
call fcn.00566c80
mov eax, dword [esp + 0x3c]
add esp, 0x2c
add eax, 6
jmp 0x56bc8e
mov ecx, dword [esp + 0x54]
cmp ax, word [esp + 0x5c]
jb 0x56bc17
cmp ax, cx
jbe 0x56bcfd
mov edx, dword [esp + 0x58]
cmp ax, dx
je 0x56bd01
push 0x24
push edi
call fcn.00585750
add esp, 8
cmp dword [edi], 0
jne 0x56c364
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x14], 0
push 1
mov dword [eax + 0x18], 0
push eax
mov dword [eax + 0x1c], 0
mov dword [eax + 0x20], 0
push esi
mov dword [eax + 0x10], esi
push ebx
mov dword [ebp + 0x20], eax
call fcn.00568870
add esp, 0x10
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
push ebp
push ecx
push eax
push ebx
call fcn.00570940
add esp, 0x10
cmp dword [edi], 0
jne 0x56c364
mov esi, dword [esp + 0x20]
cmp si, word [esp + 0x60]
je 0x56bcb9
cmp si, word [esp + 0x64]
jne 0x56bcd1
push dword [esp + 0x18]
push 0x8d
push 0
push 2
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
cmp si, word [esp + 0x30]
jne 0x56be07
push dword [esp + 0x34]
push dword [esp + 0x2c]
push dword [esp + 0x20]
push dword [ebp + 0x20]
push dword [esp + 0x2c]
push ebx
call fcn.00582750
add esp, 0x18
jmp 0x56be1c
mov edx, dword [esp + 0x58]
mov dword [ebp + 0x20], 0
movzx eax, word [esi]
cmp ax, cx
jne 0x56bd1c
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x56bc86
mov ecx, 0x94
cmp ax, cx
je 0x56bddb
cmp ax, dx
je 0x56bddb
cmp ax, word [esp + 0x5c]
jne 0x56bd81
movzx esi, word [esi + 2]
mov edx, dword [ebx + 0xd8]
mov eax, esi
test edx, edx
je 0x56bddb
mov ecx, 0xffff
cmp ax, cx
je 0x56bd75
mov edx, dword [edx + 0x14]
xor ecx, ecx
test edx, edx
jne 0x56bd66
test ax, ax
jmp 0x56bd6e
mov eax, dword [ebx + 8]
cmp si, word [eax + edx*2 + 4]
sete cl
test ecx, ecx
je 0x56bddb
mov eax, dword [esp + 0x10]
add eax, 4
jmp 0x56bc8a
mov eax, dword [ebx + 0xd8]
test eax, eax
je 0x56bddb
mov ebp, dword [eax + 0x14]
test ebp, ebp
je 0x56bddb
mov eax, dword [esp + 0x10]
movzx edx, word [esi + 4]
mov esi, dword [ebx + 0xb8]
movzx ecx, word [eax + 2]
mov eax, dword [ebx + 0xb0]
imul ecx, esi
lea ecx, [eax + ecx*2]
mov eax, dword [ebx + 8]
movzx eax, word [eax + ebp*2 + 4]
test edx, edx
je 0x56bddb
nop dword [eax]
cmp word [ecx], ax
je 0x56bdcd
dec edx
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x56bdc0
test edx, edx
je 0x56bddb
add dword [esp + 0x10], 6
jmp 0x56bc86
mov ebp, dword [esp + 0x44]
cmp word [ebp], 0x78
jne 0x56bdfe
lea eax, [ebp + 4]
mov dword [esp + 0x10], eax
movzx eax, word [ebp + 2]
lea ebp, [ebp + eax*2]
mov dword [esp + 0x44], ebp
jmp 0x56bc86
mov dword [esp + 0x10], ebp
jmp 0x56bc86
cmp si, word [esp + 0x68]
jne 0x56be1c
push ebp
push dword [esp + 0x1c]
push ebx
call fcn.00582900
add esp, 0xc
xor edx, edx
cmp dword [esp + 0x38], 0x28
jne 0x56be41
push dword [esp + 0x40]
push 0x8d
push edx
push 3
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
mov edx, 1
cmp word [esp + 0x1c], 0x79
mov eax, 0x86
jne 0x56be55
cmp word [esp + 0x2c], ax
je 0x56be56
inc edx
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x56be78
cmp dword [ebx + 0x48], 0
lea eax, [edx + 1]
cmove eax, edx
shr ecx, 1
mov edx, eax
mov eax, dword [ebx + 0x14]
cmp byte [ecx + eax], 0
jne 0x56be78
add edx, 2
cmp dword [esp + 0x28], 0
je 0x56be87
cmp si, word [esp + 0x30]
je 0x56be87
inc edx
test edx, edx
je 0x56be95
push edx
push ebx
call fcn.00566cb0
add esp, 8
xor esi, esi
cmp dword [esp + 0x38], 0x28
jne 0x56bebb
push 1
push 0x40
push esi
push 3
push esi
push 0x8b
push 0x62
push edi
call fcn.00587130
add esp, 0x20
mov esi, 1
mov ecx, dword [esp + 0x1c]
cmp cx, 0x79
jne 0x56bed1
mov eax, 0x86
cmp word [esp + 0x2c], ax
je 0x56befe
push 0
cmp cx, 0x79
mov edx, 0x40
mov eax, 2
cmove eax, edx
push eax
lea eax, [esi*4]
push eax
push 0x8b
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
inc esi
mov eax, dword [esp + 0x48]
test eax, eax
je 0x56bf17
push dword [esp + 0x18]
push eax
push esi
push ebx
call fcn.005825d0
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 0x44]
mov edx, 1
cmp word [eax], 0x78
jne 0x56bf39
movzx ecx, word [eax + 2]
inc edx
cmp word [eax + ecx*2], 0x78
lea eax, [eax + ecx*2]
je 0x56bf26
mov dword [esp + 0x44], eax
cmp dword [esp + 0x28], 0
je 0x56bf88
mov eax, dword [esp + 0x30]
cmp word [esp + 0x20], ax
je 0x56bf6c
shl esi, 2
cmp edx, 3
jg 0x56c059
push 0
push 0x40
push esi
push 0x8b
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
mov esi, dword [esp + 0x14]
cmp word [esp + 0x1c], 0x7a
je 0x56bf84
push edi
call fcn.00586cc0
add esp, 4
mov dword [esi + 0x14], eax
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
test edx, edx
je 0x56bfbb
mov eax, dword [ebx + 0x14]
mov ecx, edx
shr ecx, 1
cmp byte [ecx + eax], 0
je 0x56bfbb
mov eax, dword [ebx + 0x24]
push 0
push 2
lea eax, [eax + edx*4]
add eax, 4
push eax
push 0x8d
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
cmp word [esp + 0x1c], 0x7a
jne 0x56c146
cmp dword [esp + 0x38], 0
je 0x56c074
cmp dword [esp + 0x28], 0
je 0x56bfe5
push edi
call fcn.00586cc0
add esp, 4
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x40]
push 1
push 0x40
push eax
push 0x8d
push eax
push 0x8d
push 0x262
push edi
call fcn.00587130
push 1
push edi
call fcn.00586c30
mov ebp, dword [esp + 0x4c]
add esp, 0x28
test eax, eax
je 0x56c02a
test ebp, ebp
je 0x56c02a
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebp
or ecx, 1
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x30]
cmp word [esp + 0x20], ax
je 0x56c134
push 1
push ebx
call fcn.0057ece0
add esp, 8
push edi
call fcn.00586cc0
mov esi, dword [esp + 0x18]
add esp, 4
mov dword [esi + 0x18], eax
jmp 0x56c14e
push esi
push 0x8b
push edi
call fcn.00587a40
mov esi, dword [esp + 0x20]
add esp, 0xc
mov dword [esi + 0x20], eax
jmp 0x56bf70
mov esi, dword [esp + 0x20]
lea eax, [esi - 0x86]
cmp ax, 4
ja 0x56c0a0
push 0x22
push edi
call fcn.00586c30
mov ebp, dword [esp + 0x2c]
add esp, 8
test eax, eax
je 0x56c134
jmp 0x56c11d
cmp dword [esp + 0x28], 0
je 0x56c0b3
push edi
call fcn.00586cc0
add esp, 4
mov dword [ebp + 0x14], eax
push 0
push 2
cmp si, word [esp + 0x38]
je 0x56c106
push dword [esp + 0x20]
push 0x8d
push 1
push edi
call fcn.005858e0
add esp, 0x18
test eax, eax
je 0x56c0ed
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x56c0ed
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebp
or ecx, 1
mov dword [eax + 8], ecx
mov eax, 0x96
cmp word [esp + 0x2c], ax
je 0x56c130
push 1
push ebx
call fcn.0057ece0
add esp, 8
jmp 0x56c130
push 0
push 3
push 1
push edi
call fcn.005858e0
add esp, 0x18
test eax, eax
je 0x56c130
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x56c130
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebp
or ecx, 1
mov dword [eax + 8], ecx
mov ebp, dword [esp + 0x24]
push edi
call fcn.00586cc0
mov esi, dword [esp + 0x18]
add esp, 4
mov dword [esi + 0x18], eax
jmp 0x56c14e
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
cmp eax, 0x29
jne 0x56c1a0
push ebx
call fcn.00576a90
mov eax, dword [esp + 0x44]
push 1
push 0x40
push eax
push 0x8d
push eax
push 0x8d
push 0x262
push edi
call fcn.00587130
push 1
push edi
call fcn.00586c30
add esp, 0x2c
test eax, eax
je 0x56c1d8
test ebp, ebp
je 0x56c1d8
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebp
or ecx, 1
mov dword [eax + 8], ecx
jmp 0x56c1d8
cmp eax, 0x27
jne 0x56c1d8
push dword [esp + 0x40]
push 0x8d
push 0
push 3
push 0x20
push edi
call fcn.00586ef0
push 1
push ebx
call fcn.00566cb0
push 0
push 3
push 0
push 0x8b
push 0x20
push edi
call fcn.00586ef0
add esp, 0x38
mov eax, dword [esp + 0x2c]
mov edx, 0x96
cmp ax, dx
jne 0x56c253
push edi
call fcn.00586cc0
add esp, 4
mov dword [esi + 0x1c], eax
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov esi, 0x97
lea edx, [esi - 1]
cmp cx, 0x79
je 0x56c211
cmp ax, si
jne 0x56c216
cmp ax, dx
jne 0x56c21f
push ebx
call fcn.00576a90
add esp, 4
cmp bp, word [esp + 0x30]
jne 0x56c23d
mov edx, dword [esp + 0x14]
xor ecx, ecx
cmp dword [esp + 0x34], ecx
setne cl
mov eax, dword [edx + 0x20]
add eax, eax
or ecx, eax
mov dword [edx + 0x20], ecx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x44]
add eax, 2
pop edi
pop esi
pop ebp
lea eax, [ecx + eax*2]
pop ebx
add esp, 0x70
ret
mov esi, 0x97
cmp ax, si
jne 0x56c357
mov esi, dword [esp + 0x8c]
push 0x22
push edi
mov esi, dword [esi + 0x14]
call fcn.00586c30
add esp, 8
test eax, eax
je 0x56c28d
test esi, esi
je 0x56c28d
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
mov ebp, dword [esp + 0x4c]
test ebp, ebp
je 0x56c1f2
push edi
call fcn.00586cc0
add esp, 4
test eax, eax
je 0x56c2b5
mov ecx, dword [ebp + 8]
and ecx, 0xfffffffd
mov dword [ebp + 0xc], eax
or ecx, 1
mov dword [ebp + 8], ecx
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
cmp bp, ax
jne 0x56c31c
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x20], 0
jl 0x56c31c
push dword [esp + 0x18]
push 0x8d
push 0
push 0xb
push 0x20
push edi
call fcn.00586ef0
push 0x23
push edi
call fcn.00586c30
push eax
lea eax, [ebx + 0xfc]
push eax
push edi
call fcn.00566c80
mov eax, dword [esi + 0x20]
lea eax, [eax*4 - 4]
push eax
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push edi
call fcn.00587130
add esp, 0x4c
jmp 0x56c1f6
mov ecx, dword [esp + 0x1c]
cmp cx, 0x7b
jne 0x56c1fa
cmp bp, ax
je 0x56c226
push 1
push ebx
call fcn.0057ece0
mov eax, dword [esp + 0x80]
add esp, 8
mov ecx, dword [esp + 0x44]
add eax, 2
pop edi
pop esi
pop ebp
lea eax, [ecx + eax*2]
pop ebx
add esp, 0x70
ret
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
jmp 0x56c206
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x70
ret