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

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
push edi
xor eax, eax
mov dword [esp + 0x2c], 0
cmp dword [esp + 0x84], eax
mov ecx, 0x96
setne al
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x78]
lea edx, [ecx + 1]
lea eax, [eax*8 + 0xc]
mov dword [esp + 0x20], 0x86
add eax, dword [esp + 0x80]
mov esi, dword [ebp]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x84]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x88]
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0xc0]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0xc8]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0xe0]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0xe4]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0xf0]
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [ebp + 0x1c], eax
movzx eax, word [ebx]
mov dword [esp + 0x48], 0
cmp ax, cx
je 0x56efa3
cmp ax, dx
jne 0x56efaa
mov dword [esp + 0x20], eax
add ebx, 2
mov eax, dword [ebp + 0xc]
mov ecx, ebx
sub ecx, dword [ebp + 8]
sar ecx, 1
mov edi, dword [eax + ecx*4]
lea eax, [esp + 0x1c]
push eax
push 0
push 0
push ebx
push ebp
mov dword [esp + 0x28], edi
call fcn.005854c0
mov ecx, eax
add esp, 0x14
mov eax, dword [esp + 0x80]
mov edx, 0x80
mov dword [esp + 0x18], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edi
movzx eax, word [ebx]
mov dword [esp + 0x24], eax
cmp eax, 0x7e
je 0x56effb
cmp ax, dx
mov eax, dword [esp + 0x44]
jne 0x56efff
lea eax, [esp + 0x48]
mov dword [esp + 0x40], eax
mov edx, 0x97
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
cmp ax, dx
jne 0x56f073
cmp dword [esi], 0
jne 0x56f03e
push 0
push 0x8b
push 0
push 2
push 1
push esi
call fcn.00581ba0
add esp, 0x18
test eax, eax
je 0x56f03e
mov byte [eax], 0x8b
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [ebp]
call fcn.0058d7b0
push 0
push 0x40
push 0
push 2
push 0
push esi
call fcn.0058bf60
mov ecx, dword [esp + 0x50]
add esp, 0x38
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
mov edx, 0x86
test ecx, ecx
jns 0x56f19f
mov edi, 1
mov dword [esp + 0x10], edi
cmp ax, dx
jne 0x56f0d6
movzx edx, word [ebx + 4]
lea ecx, [ebx + 4]
lea eax, [edx - 4]
cmp eax, 0x75
ja case.0x56f0a7.6
nop dword [eax]
movzx eax, byte [eax + 0x56ff34]
jmp dword [eax*4 + 0x56ff24]
movzx eax, word [ecx + 6]
jmp 0x56f0bb
movzx eax, byte [edx + 0x6b4968]
movzx edx, word [ecx + eax*2]
lea ecx, [ecx + eax*2]
lea eax, [edx - 4]
cmp eax, 0x75
jbe 0x56f0a0
jmp case.0x56f0a7.6
xor edi, edi
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 0
je 0x56f0e2
inc edi
mov dword [esp + 0x10], edi
cmp ecx, 0xffffffff
jne 0x56f10f
cmp dword [esi], 0
jne 0x56f10f
mov eax, dword [esp + 0x14]
add eax, 0x20
push eax
push 0x8d
push 0
push 0xb
push 1
push esi
call fcn.00581ba0
add esp, 0x18
test eax, eax
je 0x56f10f
mov byte [eax], 0x89
test edi, edi
je 0x56f11d
push edi
push ebp
call fcn.0056d330
add esp, 8
cmp dword [esp + 0x1c], 0
je 0x56f14b
cmp dword [esi], 0
mov eax, dword [ebp + 0x44]
jne 0x56f14b
add eax, 0x20
push eax
push 0x8d
push 0
push 1
push 1
push esi
call fcn.00581ba0
add esp, 0x18
test eax, eax
je 0x56f14b
mov byte [eax], 0x8b
test edi, edi
je 0x56f165
push 0
push 2
push 0
push 0x8b
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
cmp dword [esp + 0x1c], 0
je 0x56f2a9
push 0
push 0x40
push dword [ebp + 0x44]
push 0x8d
push 0x20
push esi
call fcn.0058d570
push 0
push 1
push 4
push 0x8b
push 0x20
push esi
call fcn.0058d570
add esp, 0x30
jmp 0x56f2a9
xor eax, eax
cmp dword [esp + 0x1c], eax
setne al
add eax, 2
mov dword [esp + 0x10], eax
lea edi, [eax + ecx]
push edi
push ebp
call fcn.0056d330
push dword [esp + 0x1c]
push 0x8d
push 0
push 1
push 0x20
push esi
call fcn.0058d570
lea eax, [edi*4]
push eax
push 0x40
push 0
push 0xb
push 0
push 3
push 0x60
push esi
call fcn.0058d7b0
add esp, 0x40
push 0
push 3
push dword [esp + 0x1c]
push 0x8d
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
cmp dword [esp + 0x1c], 0
je 0x56f221
push dword [ebp + 0x44]
push 0x8d
push 0
push 3
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
push 0
push 2
push 0
push 0x8b
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
cmp dword [esp + 0x1c], 0
je 0x56f274
push 0
push 1
push 8
push 0x8b
push 0x20
push esi
call fcn.0058d570
push 0
push 3
push 4
push 0x8b
push 0x20
push esi
call fcn.0058d570
mov ecx, dword [ebp + 0x44]
mov eax, 0x8d
add esp, 0x30
lea edx, [eax - 0x4d]
jmp 0x56f283
mov eax, 0x8b
mov ecx, 4
mov edx, 1
push 0
push edx
push ecx
push eax
push 0x20
push esi
call fcn.0058d570
mov eax, dword [esp + 0x28]
push eax
lea eax, [edi - 1]
push eax
push 0
push ebx
push ebp
call fcn.005861c0
mov edi, dword [esp + 0x3c]
add esp, 0x2c
cmp dword [esp + 0x84], 0
xorps xmm0, xmm0
mov eax, dword [esp + 0x24]
mov ecx, 0x81
movlpd qword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
jne 0x56f2d8
cmp ax, 0x7f
je 0x56f2d8
cmp ax, cx
jne 0x56f2fe
mov dword [esp + 0x2c], 1
mov dword [ebp + 0x84], 1
mov dword [ebp + 0xc0], 0
mov dword [ebp + 0xe0], 0
cmp ax, 0x7e
je 0x56f312
mov ecx, 0x80
cmp ax, cx
je 0x56f312
xor eax, eax
jmp 0x56f317
mov eax, 1
mov ecx, dword [esp + 0x28]
mov dword [ebp + 0x88], eax
mov dword [ebp + 0xe4], 0
nop dword [eax + eax]
mov dword [ebp + 0xc8], 0
mov dword [ebp + 0xf0], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
cmp word [ebx], 0x78
jne 0x56f378
test edi, edi
je 0x56f378
push 0
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058d570
mov ecx, dword [esp + 0x40]
add esp, 0x18
lea eax, [esp + 0x60]
mov dword [esp + 0x70], ebx
push eax
push ecx
lea eax, [ebx + 4]
push eax
push ebp
call fcn.00576fc0
add esp, 0x10
cmp dword [esi], 0
jne 0x56fec3
push esi
call fcn.0058d340
mov edx, dword [ebp + 0xf0]
add esp, 4
mov edi, eax
mov dword [ebp + 0xc8], edi
test edx, edx
je 0x56f3d3
mov ecx, dword [edx]
test ecx, ecx
je 0x56f3cc
test edi, edi
je 0x56f3cc
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x56f3b3
mov ebx, dword [esp + 0x18]
test ebx, ebx
jns 0x56f448
cmp ebx, 0xffffffff
jne 0x56f3fa
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
jmp 0x56f41d
mov eax, dword [esp + 0x10]
test eax, eax
je 0x56f41d
shl eax, 2
push eax
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [ebp]
call fcn.0058d7b0
add esp, 0x20
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x56f54d
push 0xfffffffffffffffc
push 0x8b
push dword [ebp + 0x44]
push 0x8d
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
jmp 0x56f549
mov eax, dword [esp + 0x24]
cmp ax, 0x7f
je 0x56f45c
mov ecx, 0x81
cmp ax, cx
jne 0x56f466
cmp dword [esp + 0x84], 0
je 0x56f4b8
mov edi, dword [esp + 0x14]
lea eax, [ebx*4 + 4]
push eax
push 0x40
push edi
push 0x8d
push 0
push 0xb
push 0x62
push esi
call fcn.0058d7b0
mov ecx, dword [esp + 0x3c]
add esp, 0x20
test ecx, ecx
je 0x56f551
push 0xfffffffffffffffc
push 0x8b
push dword [ebp + 0x44]
push 0x8d
push 0x20
push esi
call fcn.0058d570
mov ecx, dword [esp + 0x34]
add esp, 0x18
jmp 0x56f551
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
cmp dword [esp + 0x1c], 0
je 0x56f4fa
mov eax, 0xfffffffe
sub eax, ebx
shl eax, 2
push eax
push 0x8b
push dword [ebp + 0x44]
push 0x8d
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
push 0x23
push esi
call fcn.0058d2b0
add esp, 8
mov edi, eax
cmp dword [esi], 0
jne 0x56f52c
push 8
push esi
call fcn.00581f00
add esp, 8
test eax, eax
je 0x56f52c
mov ecx, dword [ebp + 0xfc]
mov dword [eax + 4], ecx
mov dword [eax], edi
mov dword [ebp + 0xfc], eax
lea eax, [ebx*4 - 4]
push eax
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push esi
call fcn.0058d7b0
add esp, 0x20
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
cmp ax, 0x7f
je 0x56f569
mov edx, 0x81
cmp ax, dx
jne 0x56f667
cmp dword [esp + 0x84], 0
je 0x56f59b
cmp dword [esp + 0x10], 0
je 0x56f667
xor eax, eax
test ecx, ecx
sete al
lea eax, [eax*4 - 8]
push eax
push 0x8b
push 0
push 2
jmp 0x56f65c
mov eax, 0x96
cmp word [esp + 0x20], ax
jne 0x56f644
test ebx, ebx
jns 0x56f5c4
lea edi, [eax - 0xb]
xor edx, edx
mov eax, dword [esp + 0x10]
mov ecx, 2
neg eax
shl eax, 2
jmp 0x56f60c
or eax, 0xffffffff
sub eax, ebx
shl eax, 2
push eax
push 0x8b
push 0
push 1
push 0x20
push esi
call fcn.0058d570
mov eax, dword [esp + 0x28]
add eax, ebx
neg eax
shl eax, 2
push eax
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058d570
add esp, 0x30
mov edx, edi
mov ecx, 0x8d
mov edi, 1
xor eax, eax
push eax
push edi
push edx
push ecx
push 0x20
push esi
call fcn.0058d570
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push esi
call fcn.0058d7b0
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0058d570
add esp, 0x50
jmp 0x56f667
test ebx, ebx
js 0x56f667
or eax, 0xffffffff
sub eax, ebx
shl eax, 2
push eax
push 0x8b
push edi
push 0x8d
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
push 0x22
push esi
call fcn.0058d2b0
add esp, 8
mov edi, eax
cmp dword [esi], 0
jne 0x56f695
push 8
push esi
call fcn.00581f00
add esp, 8
test eax, eax
je 0x56f695
mov edx, dword [esp + 0x40]
mov ecx, dword [edx]
mov dword [eax + 4], ecx
mov dword [eax], edi
mov dword [edx], eax
push dword [esp + 0x68]
push ebp
call fcn.0056ffb0
add esp, 8
cmp dword [esi], 0
jne 0x56fec3
push esi
call fcn.0058d340
mov edx, dword [esp + 0x70]
add esp, 4
mov edi, eax
test edx, edx
je 0x56f6e0
nop
mov ecx, dword [edx]
test ecx, ecx
je 0x56f6d9
test edi, edi
je 0x56f6d9
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x56f6c0
mov ecx, dword [esp + 0x28]
cmp word [ecx], 0x78
jne 0x56f700
movzx eax, word [ecx + 2]
mov ebx, ecx
mov edi, dword [esp + 0x10]
lea ecx, [ecx + eax*2]
mov dword [esp + 0x28], ecx
jmp 0x56f330
cmp dword [esp + 0x2c], 0
je 0x56f715
mov eax, dword [ebp + 0xe0]
mov dword [ebp + 0xe4], eax
jmp 0x56f71b
mov eax, dword [ebp + 0xe4]
test eax, eax
je 0x56f7ed
push 0x22
push esi
call fcn.0058d2b0
push esi
mov ebx, eax
call fcn.0058d340
mov edx, dword [ebp + 0xe4]
add esp, 0xc
mov edi, eax
test edx, edx
je 0x56f762
mov ecx, dword [edx]
test ecx, ecx
je 0x56f75b
test edi, edi
je 0x56f75b
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x56f742
mov eax, dword [esp + 0x10]
lea edi, [eax*4]
mov eax, dword [esp + 0x18]
test eax, eax
jns 0x56f780
mov ecx, dword [esp + 0x14]
mov eax, 0x8d
jmp 0x56f7b8
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push esi
call fcn.0058d570
push 0x23
push esi
call fcn.0058d2b0
push eax
lea eax, [ebp + 0xfc]
push eax
push esi
call fcn.0056d300
add esp, 0x2c
xor ecx, ecx
mov eax, 0xb
add edi, 4
push edi
push 0x40
push ecx
push eax
push 0
push 0xb
push 0x62
push esi
call fcn.0058d7b0
push esi
call fcn.0058d340
add esp, 0x24
test ebx, ebx
je 0x56f7e9
test eax, eax
je 0x56f7e9
mov ecx, dword [ebx + 8]
and ecx, 0xfffffffd
mov dword [ebx + 0xc], eax
or ecx, 1
mov dword [ebx + 8], ecx
mov ebx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 0
je 0x56f80e
push 4
push 0x8b
push dword [ebp + 0x44]
push 0x8d
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
mov eax, dword [esp + 0x24]
cmp ax, 0x7e
je 0x56f9f3
mov ecx, 0x80
cmp ax, cx
je 0x56f9f3
test ebx, ebx
jns 0x56f898
mov eax, dword [esp + 0x10]
test eax, eax
je 0x56f850
push 0
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058d570
mov eax, dword [esp + 0x28]
add esp, 0x18
mov ebx, 0x86
cmp word [esp + 0x20], bx
je 0x56f881
cmp eax, 2
jne 0x56f86c
push 1
push ebp
call fcn.00585360
add esp, 8
mov ecx, 0x8b
mov dword [esp + 0x14], 0
lea edx, [ecx - 0x4b]
jmp 0x56f911
test eax, eax
je 0x56fe60
push eax
push ebp
call fcn.00585360
add esp, 8
jmp 0x56fe60
push 0
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058d570
mov ebx, dword [esp + 0x28]
lea eax, [ebx*4 - 4]
push eax
push 0x8b
push 0
push 1
push 0x20
push esi
call fcn.0058d570
mov eax, dword [esp + 0x48]
add esp, 0x30
add eax, ebx
mov ebx, 0x86
cmp word [esp + 0x20], bx
je 0x56f8fd
dec eax
push eax
push ebp
call fcn.00585360
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0058d570
add esp, 0x20
jmp 0x56f907
push eax
push ebp
call fcn.00585360
add esp, 8
mov ecx, 0x8d
mov edx, 1
push 0
push edx
push dword [esp + 0x1c]
mov eax, esi
push ecx
push 0x20
push eax
call fcn.0058d570
mov eax, dword [esp + 0x38]
mov edx, 0x96
add esp, 0x18
cmp ax, dx
jne 0x56f949
push esi
call fcn.0058d340
mov ebx, dword [esp + 0x84]
add esp, 4
mov dword [ebx + 0x20], eax
jmp 0x56f9b5
mov ecx, 0x97
cmp ax, cx
jne 0x56f9a5
mov ebx, dword [esp + 0x80]
push 0x22
push esi
mov edi, dword [ebx + 0x20]
call fcn.0058d2b0
add esp, 8
test eax, eax
je 0x56f97f
test edi, edi
je 0x56f97f
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edi
or ecx, 1
mov dword [eax + 8], ecx
push esi
call fcn.0058d340
mov edx, dword [esp + 0x34]
add esp, 4
test edx, edx
je 0x56f9b5
test eax, eax
je 0x56f9b5
mov ecx, dword [edx + 8]
and ecx, 0xfffffffd
mov dword [edx + 0xc], eax
or ecx, 1
mov dword [edx + 8], ecx
jmp 0x56f9b5
cmp ax, bx
je 0x56fe60
mov ebx, dword [esp + 0x80]
push esi
call fcn.0058d340
mov edx, dword [ebx + 0xc]
add esp, 4
mov esi, eax
test edx, edx
je 0x56f9e7
mov ecx, dword [edx]
test ecx, ecx
je 0x56f9e0
test esi, esi
je 0x56f9e0
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x56f9c7
mov dword [ebx + 0xc], 0
jmp 0x56fe60
cmp dword [esp + 0x84], 0
mov ebx, dword [esp + 0x10]
je 0x56fa05
test ebx, ebx
jne 0x56fa13
mov eax, dword [esp + 0x20]
mov ecx, 0x96
cmp ax, cx
jne 0x56fa32
push 0
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058d570
mov eax, dword [esp + 0x38]
add esp, 0x18
mov ecx, 0x96
mov edi, dword [esp + 0x18]
test edi, edi
jns 0x56fa95
cmp ax, cx
jne 0x56fa74
cmp ebx, 2
jne 0x56fa4f
push 1
push ebp
call fcn.00585360
add esp, 8
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0058d570
push 0x22
push esi
call fcn.0058d2b0
add esp, 0x20
mov ebx, eax
jmp 0x56fb29
test ebx, ebx
je 0x56fb02
push ebx
push ebp
call fcn.00585360
push 0x22
push esi
call fcn.0058d2b0
add esp, 0x10
mov ebx, eax
jmp 0x56fb1b
lea eax, [ebx*4 - 4]
push eax
push 0x8b
push 0
push 1
push 0x20
push esi
call fcn.0058d570
mov edx, 0x96
lea eax, [ebx + edi]
add esp, 0x18
cmp word [esp + 0x20], dx
jne 0x56fae0
dec eax
push eax
push ebp
call fcn.00585360
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0058d570
add esp, 0x20
jmp 0x56faea
push eax
push ebp
call fcn.00585360
add esp, 8
push 0
push 1
push dword [esp + 0x1c]
push 0x8d
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
push 0x22
push esi
call fcn.0058d2b0
mov ebx, eax
add esp, 8
mov eax, 0x96
cmp word [esp + 0x20], ax
je 0x56fb29
push ebx
push dword [esp + 0x48]
push esi
call fcn.0056d300
add esp, 0xc
push esi
call fcn.0058d340
mov edx, dword [esp + 0x4c]
add esp, 4
mov edi, eax
test edx, edx
je 0x56fb60
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x56fb59
test edi, edi
je 0x56fb59
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x56fb40
mov eax, dword [esp + 0x18]
test eax, eax
jns 0x56fc15
mov edi, dword [esp + 0x10]
test edi, edi
je 0x56fb90
mov eax, edi
neg eax
shl eax, 2
push eax
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
mov eax, dword [esp + 0x20]
mov edx, 0x96
cmp ax, dx
jne 0x56fbd8
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push esi
call fcn.0058d7b0
add esp, 0x20
cmp edi, 2
jne 0x56fd1a
push 0
push edi
push 0
push 0x8b
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
jmp 0x56fd1a
mov ecx, 0x97
cmp ax, cx
jne 0x56fe60
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push esi
call fcn.0058d7b0
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0058d570
add esp, 0x38
jmp 0x56fd5c
mov edi, dword [esp + 0x20]
mov ecx, 0x86
cmp di, cx
jne 0x56fc6a
lea eax, [eax*4 + 4]
push eax
push 0x40
push dword [esp + 0x1c]
push 0x8d
push 0
push 0xb
push 0x62
push esi
call fcn.0058d7b0
mov eax, dword [esp + 0x30]
mov ecx, 4
shl eax, 2
sub ecx, eax
push ecx
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058d570
add esp, 0x38
jmp 0x56fe60
lea eax, [eax*4 + 8]
push eax
push 0x40
push dword [esp + 0x1c]
push 0x8d
push 0
push 0xb
push 0x62
push esi
call fcn.0058d7b0
add esp, 0x20
cmp dword [esp + 0x10], 2
jne 0x56fcce
push 0
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058d570
mov ecx, 0x97
add esp, 0x18
cmp di, cx
jne 0x56fd10
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0058d570
add esp, 0x18
jmp 0x56fd5c
push 0xfffffffffffffffc
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0058d570
mov edx, 0x96
mov ecx, 2
push 0
cmp di, dx
mov eax, 0x40
cmove eax, ecx
push eax
push 0
push 0x8b
push 0x20
push esi
call fcn.0058d570
add esp, 0x30
mov ecx, 0x97
mov eax, 0x96
cmp di, ax
jne 0x56fd53
push esi
call fcn.0058d340
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x80]
mov dword [eax + 0x20], ecx
test ebx, ebx
je 0x56fe60
test ecx, ecx
je 0x56fe60
mov eax, dword [ebx + 8]
and eax, 0xfffffffd
mov dword [ebx + 0xc], ecx
or eax, 1
mov dword [ebx + 8], eax
jmp 0x56fe60
cmp di, cx
jne 0x56fe60
mov eax, dword [esp + 0x80]
push 0x22
push esi
mov edi, dword [eax + 0x20]
call fcn.0058d2b0
add esp, 8
test eax, eax
je 0x56fd88
test edi, edi
je 0x56fd88
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edi
or ecx, 1
mov dword [eax + 8], ecx
push esi
call fcn.0058d340
mov edx, dword [esp + 0x34]
add esp, 4
test edx, edx
je 0x56fdac
test eax, eax
je 0x56fdac
mov ecx, dword [edx + 8]
and ecx, 0xfffffffd
mov dword [edx + 0xc], eax
or ecx, 1
mov dword [edx + 8], ecx
mov ebx, dword [esp + 0x18]
test ebx, ebx
js 0x56fe25
mov edi, dword [esp + 0x14]
push edi
push 0x8d
push 0
push 0xb
push 0x20
push esi
call fcn.0058d570
push 0x23
push esi
call fcn.0058d2b0
push eax
lea eax, [ebp + 0xfc]
push eax
push esi
call fcn.0056d300
push 0xfffffffffffffff8
push 0x8b
push 0
push 1
push 0x20
push esi
call fcn.0058d570
add esp, 0x44
lea eax, [ebx*4 - 4]
push eax
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push esi
call fcn.0058d7b0
push 0
push 1
push edi
push 0x8d
push 0x20
push esi
call fcn.0058d570
add esp, 0x38
push esi
call fcn.0058d340
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x56fe60
nop
mov ecx, dword [edx]
test ecx, ecx
je 0x56fe59
test esi, esi
je 0x56fe59
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x56fe40
cmp dword [esp + 0x2c], 0
je 0x56fe85
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x84], eax
mov eax, dword [esp + 0x38]
mov dword [ebp + 0xc0], eax
mov eax, dword [esp + 0x3c]
mov dword [ebp + 0xe0], eax
mov eax, dword [esp + 0x4c]
mov dword [ebp + 0x88], eax
mov eax, dword [esp + 0x50]
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0x54]
mov dword [ebp + 0xc8], eax
mov eax, dword [esp + 0x58]
mov dword [ebp + 0xe4], eax
mov eax, dword [esp + 0x5c]
pop edi
mov dword [ebp + 0xf0], eax
mov eax, dword [esp + 0x24]
pop esi
pop ebp
add eax, 4
pop ebx
add esp, 0x64
ret
cmp dword [esp + 0x2c], 0
je 0x56fee8
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x84], eax
mov eax, dword [esp + 0x38]
mov dword [ebp + 0xc0], eax
mov eax, dword [esp + 0x3c]
mov dword [ebp + 0xe0], eax
mov eax, dword [esp + 0x4c]
mov dword [ebp + 0x88], eax
mov eax, dword [esp + 0x50]
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0x54]
mov dword [ebp + 0xc8], eax
mov eax, dword [esp + 0x58]
pop edi
mov dword [ebp + 0xe4], eax
mov eax, dword [esp + 0x58]
pop esi
mov dword [ebp + 0xf0], eax
xor eax, eax
pop ebp
pop ebx
add esp, 0x64
ret