Function at 0x56c620
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x5ccd87
push eax
mov dword fs:[0], esp
sub esp, 0xe8
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x14]
push edi
mov edi, ebx
call fcn.0056bf70
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
push 0xffffffffffffffff
push 0
mov dword [ebx + 8], ecx
lea edi, [ebx + 0x6c]
push esi
mov ecx, edi
mov dword [ebx + 4], eax
mov dword [ebx + 0x60], 1
call fcn.00401c50
push edi
mov dword [ebx + 0x3c], 0xffffffff
call fcn.00421a30
add esp, 4
cmp dword [ebp + 0x10], 0
jne 0x56c6ce
push esi
lea eax, [ebp - 0xd8]
call fcn.0042f640
add esp, 4
lea esi, [ebx + 0x44]
push eax
mov ecx, esi
mov dword [ebp - 4], 0
call fcn.00414c30
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0xc4], 0x10
jb 0x56c6c6
mov ecx, dword [ebp - 0xd8]
push ecx
call fcn.0048f06d
add esp, 4
call fcn.00415430
mov esi, dword [ebp + 0x14]
xor eax, eax
mov edi, vtable.CFile.0
mov dword [ebp - 0xb0], edi
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], eax
push eax
mov dword [ebp - 4], 1
mov edx, dword [ebx + 8]
push esi
push edx
lea eax, [ebp - 0xb0]
push eax
call fcn.004f8740
test al, al
jne 0x56c72d
lea esi, [ebp - 0xb0]
mov dword [ebp - 0xb0], edi
call fcn.004f7ee0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov esi, 0xf
mov byte [ebp + 0x17], 0
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x2c], 0
mov byte [ebp - 0x3c], 0
lea edi, [ebp - 0x3c]
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 2
call fcn.004f88a0
mov ecx, edi
push ecx
mov ecx, 0x6381c4
call fcn.004431e0
test eax, eax
je 0x56c7c6
mov edx, edi
push edx
mov ecx, 0x6381c8
call fcn.004431e0
test eax, eax
je 0x56c7c2
cmp dword [ebp - 0x28], 0x10
jb 0x56c78a
mov eax, dword [ebp - 0x3c]
push eax
call fcn.0048f06d
add esp, 4
mov dword [ebp - 0x28], esi
lea esi, [ebp - 0xb0]
mov dword [ebp - 0x2c], 0
mov byte [ebp - 0x3c], 0
mov dword [ebp - 0xb0], vtable.CFile.0
call fcn.004f7ee0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov byte [ebp + 0x17], 1
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x3c]
mov eax, ecx
cmp esi, 0x10
jae 0x56c980
lea eax, [ebp - 0x3c]
mov edx, eax
cmp esi, 0x10
jae 0x56c7e4
lea ecx, [ebp - 0x3c]
movsx eax, byte [eax + 8]
movsx edx, byte [edx + 0xa]
movsx ecx, byte [ecx + 0xb]
lea eax, [eax + eax*4]
lea eax, [edx + eax*2]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*2 - 0x14d0]
lea eax, [ebp - 0x18]
push eax
mov eax, 4
lea esi, [ebp - 0xb0]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], 0
call fcn.004f7fd0
mov esi, dword [ebp - 0x18]
lea edi, [ebx + 0xc]
mov eax, esi
call fcn.00443490
test esi, esi
jle 0x56cb17
mov ecx, esi
xor edi, edi
mov dword [ebp - 0x14], ecx
lea ebx, [ebx]
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0xc]
add ebx, 0xc
add edx, edi
push edx
mov eax, 4
lea esi, [ebp - 0xb0]
mov dword [ebp + 0xc], ebx
call fcn.004f7fd0
mov eax, dword [ebx]
lea ecx, [edi + eax + 0x14]
push ecx
mov eax, 4
call fcn.004f7fd0
mov edx, dword [ebx]
lea eax, [edi + edx + 0x18]
push eax
mov eax, 4
call fcn.004f7fd0
mov ecx, dword [ebx]
lea edx, [edi + ecx + 0x1c]
push edx
mov eax, 0x10
call fcn.004f7fd0
mov eax, dword [ebx]
lea ecx, [edi + eax + 0x2c]
push ecx
mov eax, 4
call fcn.004f7fd0
mov edx, dword [ebx]
lea eax, [edi + edx + 0x30]
push eax
mov eax, 4
call fcn.004f7fd0
mov ecx, dword [ebx]
lea edx, [edi + ecx + 0x34]
push edx
mov eax, 4
call fcn.004f7fd0
cmp byte [ebp + 0x17], 0
je 0x56c99e
mov eax, ebx
mov ecx, dword [eax]
lea edx, [edi + ecx + 0x48]
push edx
mov eax, 4
call fcn.004f7fd0
mov ebx, dword [ebp - 0x1c]
cmp ebx, 0xcb
jl 0x56c94b
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
lea eax, [edi + ecx + 0x4c]
lea ecx, [eax + 4]
cmp eax, ecx
je 0x56c90f
lea ecx, [ecx]
mov edx, 0xffff
mov word [eax], dx
add eax, 2
cmp eax, ecx
jne 0x56c900
mov eax, dword [ebp + 8]
add eax, 0xc
mov dword [ebp + 0xc], eax
mov eax, dword [eax]
lea ecx, [edi + eax + 0x4c]
push ecx
mov eax, 2
lea esi, [ebp - 0xb0]
call fcn.004f7fd0
cmp ebx, 0xce
jl 0x56c94b
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
lea ecx, [edi + eax + 0x4e]
push ecx
mov eax, 2
call fcn.004f7fd0
cmp ebx, 0xcc
jl 0x56c987
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebx]
lea eax, [edi + edx + 0x50]
push eax
mov eax, 1
lea esi, [ebp - 0xb0]
call fcn.004f7fd0
mov ecx, dword [ebx]
lea edx, [edi + ecx + 0x54]
push edx
mov eax, 0x10
call fcn.004f7fd0
jmp 0x56c99e
mov edx, ecx
jmp 0x56c7dc
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov byte [edi + ecx + 0x50], 0
mov edx, dword [eax]
lea eax, [edi + edx + 0x54]
push eax
call dword [0x6102b0]
lea ecx, [ebp - 0x10]
push ecx
mov eax, 4
lea esi, [ebp - 0xb0]
mov dword [ebp - 0x10], 0
call fcn.004f7fd0
cmp dword [ebp - 0x10], 0
je 0x56c9fe
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
lea esi, [edi + eax + 0x38]
call fcn.00443310
mov ebx, 1
xor esi, esi
test dword [ebp - 0x10], ebx
je 0x56c9f1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [edi + ecx + 0x38]
add edx, esi
push edx
lea ecx, [ebp - 0xb0]
call fcn.004d66a0
add esi, 0x10
rol ebx, 1
cmp esi, 0x200
jl 0x56c9d4
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0xc]
lea esi, [eax + edi + 4]
mov eax, dword [eax + edi]
call fcn.00443250
mov ecx, dword [ebx + 0xc]
cmp dword [edi + ecx], 0
mov dword [ebp + 0xc], 0
jle 0x56cb0b
xor ebx, ebx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [edi + edx + 4]
add eax, ebx
push eax
mov eax, 4
lea esi, [ebp - 0xb0]
call fcn.004f7fd0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [edi + ecx + 4]
lea eax, [edx + ebx + 4]
push eax
mov eax, 0x10
call fcn.004f7fd0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [edi + ecx + 4]
lea eax, [edx + ebx + 0x24]
push eax
mov eax, 4
call fcn.004f7fd0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [edi + ecx + 4]
lea eax, [edx + ebx + 0x28]
push eax
mov eax, 4
call fcn.004f7fd0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [edi + ecx + 4]
lea eax, [edx + ebx + 0x14]
push eax
mov eax, 0x10
call fcn.004f7fd0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [edi + ecx + 4]
lea eax, [edx + ebx + 0x2c]
push eax
mov eax, 4
call fcn.004f7fd0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [edi + ecx + 4]
lea eax, [edx + ebx + 0x30]
push eax
mov eax, 4
call fcn.004f7fd0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [edi + ecx + 4]
lea eax, [edx + ebx + 0x34]
push eax
mov eax, 4
call fcn.004f7fd0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xc]
inc eax
add ebx, 0x38
mov dword [ebp + 0xc], eax
cmp eax, dword [edi + ecx]
jl 0x56ca26
add edi, 0x64
dec dword [ebp - 0x14]
jne 0x56c840
lea edx, [ebp + 0xc]
push edx
mov eax, 4
lea esi, [ebp - 0xb0]
mov dword [ebp + 0xc], 0
call fcn.004f7fd0
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
lea esi, [ebx + 0x2c]
mov eax, edi
call fcn.004436a0
test edi, edi
jle 0x56cd4d
xor ebx, ebx
mov dword [ebp + 0xc], edi
nop
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2c]
xor esi, esi
mov dword [ebx + ecx + 0x1c], esi
mov edx, dword [eax + 0x2c]
mov dword [ebx + edx + 0x20], esi
mov eax, dword [eax + 0x2c]
mov dword [ebx + eax + 0x24], esi
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], esi
mov byte [ebp - 0x58], 0
lea edi, [ebp - 0x58]
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 3
call fcn.004f88a0
cmp dword [ebp + 0x10], esi
jne 0x56cc8f
mov edx, dword [ebp + 8]
mov ecx, edi
push ecx
add edx, 0x44
push edx
lea eax, [ebp - 0xf4]
push eax
call fcn.0040a5e0
add esp, 0xc
push eax
lea ecx, [ebp - 0xd8]
push ecx
mov byte [ebp - 4], 4
call fcn.00445c30
add esp, 8
mov esi, eax
mov edx, edi
cmp edx, esi
je 0x56cc26
cmp dword [ebp - 0x44], 0x10
jb 0x56cbda
mov eax, dword [ebp - 0x58]
push eax
call fcn.0048f06d
add esp, 4
xor edi, edi
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], edi
mov byte [ebp - 0x58], 0
cmp dword [esi + 0x14], 0x10
jae 0x56cc04
mov eax, dword [esi + 0x10]
inc eax
push eax
lea ecx, [ebp - 0x58]
push esi
push ecx
call fcn.0048f350
add esp, 0xc
jmp 0x56cc0b
mov edx, dword [esi]
mov dword [ebp - 0x58], edx
mov dword [esi], edi
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x48], eax
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x44], ecx
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], edi
mov byte [esi], 0
jmp 0x56cc28
xor edi, edi
mov esi, 0x10
cmp dword [ebp - 0xc4], esi
jb 0x56cc44
mov edx, dword [ebp - 0xd8]
push edx
call fcn.0048f06d
add esp, 4
mov byte [ebp - 4], 3
mov dword [ebp - 0xc4], 0xf
mov dword [ebp - 0xc8], edi
mov byte [ebp - 0xd8], 0
cmp dword [ebp - 0xe0], esi
jb 0x56cc76
mov eax, dword [ebp - 0xf4]
push eax
call fcn.0048f06d
add esp, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2c]
push 0xffffffffffffffff
push edi
lea edx, [ebp - 0x58]
add ecx, ebx
push edx
call fcn.00401c50
jmp 0x56cd28
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0xf4]
push ecx
call fcn.00433800
add esp, 8
mov esi, eax
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x2c]
add edi, ebx
cmp edi, esi
je 0x56cd10
cmp dword [edi + 0x14], 0x10
jb 0x56ccc1
mov eax, dword [edi]
push eax
call fcn.0048f06d
add esp, 4
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
cmp dword [esi + 0x14], 0x10
jae 0x56cce9
mov eax, dword [esi + 0x10]
inc eax
push eax
push esi
push edi
call fcn.0048f350
add esp, 0xc
jmp 0x56ccf3
mov edx, dword [esi]
mov dword [edi], edx
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [edi + 0x10], eax
mov ecx, dword [esi + 0x14]
mov dword [edi + 0x14], ecx
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
cmp dword [ebp - 0xe0], 0x10
jb 0x56cd28
mov edx, dword [ebp - 0xf4]
push edx
call fcn.0048f06d
add esp, 4
mov byte [ebp - 4], 2
cmp dword [ebp - 0x44], 0x10
jb 0x56cd3e
mov eax, dword [ebp - 0x58]
push eax
call fcn.0048f06d
add esp, 4
add ebx, 0x28
dec dword [ebp + 0xc]
jne 0x56cb50
mov ebx, dword [ebp + 8]
lea ecx, [ebp + 0x10]
push ecx
mov eax, 4
lea esi, [ebp - 0xb0]
mov dword [ebp + 0x10], 0
call fcn.004f7fd0
mov edx, dword [ebp + 0x10]
lea eax, [ebp - 0x10]
push eax
mov eax, 4
mov dword [ebx + 0x64], edx
mov dword [ebp - 0x10], 0
call fcn.004f7fd0
mov edi, dword [ebp - 0x10]
lea esi, [ebx + 0x1c]
mov eax, edi
call fcn.00443590
mov dword [ebp - 0x20], 0
test edi, edi
jle 0x56cfcd
xor ebx, ebx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
lea edi, [ebx + ecx + 4]
lea eax, [ebp - 0xb0]
call fcn.004f88a0
lea edx, [ebp + 0x10]
push edx
mov eax, 4
lea esi, [ebp - 0xb0]
mov dword [ebp + 0x10], 0
call fcn.004f7fd0
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x1c]
mov ecx, dword [ebp + 0x10]
mov dword [ebx + eax], ecx
lea edx, [ebp + 0x10]
push edx
mov eax, 4
mov dword [ebp + 0x10], 0
call fcn.004f7fd0
mov eax, dword [edi + 0x1c]
mov ecx, dword [ebp + 0x10]
mov dword [ebx + eax + 0x20], ecx
lea edx, [ebp + 0x10]
push edx
mov eax, 4
mov dword [ebp + 0x10], 0
call fcn.004f7fd0
mov eax, dword [edi + 0x1c]
mov ecx, dword [ebp + 0x10]
mov dword [ebx + eax + 0x24], ecx
mov edx, dword [edi + 0x1c]
lea eax, [ebx + edx]
lea esi, [eax + 0x28]
mov eax, dword [eax]
call fcn.004433b0
mov eax, dword [edi + 0x1c]
cmp dword [ebx + eax], 0
mov dword [ebp - 0x14], 0
jle 0x56cfb7
mov dword [ebp + 0x10], 0
lea ecx, [ebp + 0xc]
push ecx
mov eax, 4
lea esi, [ebp - 0xb0]
mov dword [ebp + 0xc], 0
call fcn.004f7fd0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x1c]
mov esi, dword [ebx + ecx + 0x28]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
mov dword [esi + ecx + 0x10], edi
mov edi, dword [edx + 0x64]
mov edx, dword [edx + 0x1c]
mov esi, dword [ebx + edx + 0x28]
mov edx, dword [esi + ecx]
add esi, ecx
mov ecx, dword [esi + 4]
mov eax, ecx
sub eax, edx
sar eax, 2
mov dword [ebp - 0xbc], edi
cmp eax, edi
jbe 0x56cec7
lea edi, [edx + edi*4]
cmp edi, ecx
je 0x56cf59
mov eax, ecx
sub eax, ecx
sar eax, 2
add eax, eax
add eax, eax
push eax
push ecx
push edi
mov dword [ebp + 0xc], eax
call fcn.0048f350
add esp, 0xc
add edi, dword [ebp + 0xc]
mov dword [esi + 4], edi
jmp 0x56cf59
jae 0x56cf59
mov ecx, edi
sub ecx, eax
mov dword [ebp + 0xc], eax
mov eax, 0x3fffffff
sub eax, ecx
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb4], ecx
cmp dword [ebp - 0xb8], eax
jb 0x56d03c
add eax, ecx
mov ecx, dword [esi + 8]
sub ecx, edx
sar ecx, 2
mov dword [ebp + 0xc], eax
cmp eax, ecx
jbe 0x56cf2b
mov eax, ecx
shr eax, 1
mov edx, 0x3fffffff
sub edx, eax
cmp edx, ecx
jae 0x56cf1a
xor ecx, ecx
jmp 0x56cf1c
add ecx, eax
mov eax, dword [ebp + 0xc]
cmp ecx, eax
jae 0x56cf25
mov ecx, eax
push ecx
call fcn.004095b0
mov edx, dword [esi + 4]
mov eax, edx
sub eax, dword [esi]
mov ecx, edi
sar eax, 2
sub ecx, eax
je 0x56cf47
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0xbc]
mov eax, dword [esi + 4]
mov ecx, eax
sub ecx, dword [esi]
sar ecx, 2
sub edi, ecx
lea edx, [eax + edi*4]
mov dword [esi + 4], edx
mov eax, dword [ebp + 8]
xor edi, edi
cmp dword [eax + 0x64], edi
jle 0x56cf9d
lea ecx, [ebp + 0xc]
push ecx
mov eax, 4
lea esi, [ebp - 0xb0]
mov dword [ebp + 0xc], 0
call fcn.004f7fd0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebx + edx + 0x28]
mov ecx, dword [ebp + 0x10]
mov edx, dword [eax + ecx]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [edx + edi*4], eax
inc edi
cmp edi, dword [ecx + 0x64]
jl 0x56cf63
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x1c]
add dword [ebp + 0x10], 0x14
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebx + edx]
jl 0x56ce46
mov eax, dword [ebp - 0x20]
inc eax
add ebx, 0x38
mov dword [ebp - 0x20], eax
cmp eax, dword [ebp - 0x10]
jl 0x56cda1
mov ebx, dword [ebp + 8]
cmp byte [ebp + 0x17], 0
je 0x56d0f4
lea eax, [ebp + 8]
push eax
mov eax, 2
lea esi, [ebp - 0xb0]
mov dword [ebp + 8], 0
call fcn.004f7fd0
mov cx, word [ebp + 8]
xor edi, edi
lea edx, [ebp + 8]
push edx
lea eax, [edi + 2]
mov word [ebx + 0x3c], cx
mov dword [ebp + 8], edi
call fcn.004f7fd0
cmp dword [ebp - 0x1c], 0xcb
mov eax, dword [ebp + 8]
mov word [ebx + 0x3e], ax
jge 0x56d091
cmp dword [ebp - 0x1c], 0xc9
jl 0x56d046
lea eax, [ebp + 8]
push eax
lea eax, [edi + 2]
mov dword [ebp + 8], edi
call fcn.004f7fd0
movzx ecx, word [ebp + 8]
mov dword [ebp + 8], ecx
jmp 0x56d04c
push str.vector_T__too_long
call fcn.0047cca5
movzx edx, ax
mov dword [ebp + 8], edx
mov eax, dword [ebp - 0x18]
cmp eax, edi
jle 0x56d091
xor edx, edx
mov esi, eax
jmp 0x56d060
mov eax, dword [ebx + 0xc]
lea eax, [edx + eax + 0x4c]
lea ecx, [eax + 4]
cmp eax, ecx
je 0x56d07f
mov edi, edi
mov edi, 0xffff
mov word [eax], di
add eax, 2
cmp eax, ecx
jne 0x56d070
mov ecx, dword [ebx + 0xc]
mov ax, word [ebp + 8]
mov word [edx + ecx + 0x4c], ax
add edx, 0x64
dec esi
jne 0x56d060
mov edi, dword [ebp - 0x1c]
cmp edi, 0xca
jl 0x56d0c0
lea ecx, [ebp + 0xb]
push ecx
mov eax, 1
lea esi, [ebp - 0xb0]
mov byte [ebp + 0xb], 0
call fcn.004f7fd0
cmp byte [ebp + 0xb], 0
setne dl
mov byte [ebx + 0x40], dl
jmp 0x56d0c4
mov byte [ebx + 0x40], 0
cmp edi, 0xce
jl 0x56d0f0
lea eax, [ebp + 0xb]
push eax
mov eax, 1
lea esi, [ebp - 0xb0]
mov byte [ebp + 0xb], 0
call fcn.004f7fd0
cmp byte [ebp + 0xb], 0
setne cl
mov byte [ebx + 0x41], cl
jmp 0x56d0f4
mov byte [ebx + 0x41], 0
cmp dword [ebp - 0x28], 0x10
jb 0x56d106
mov edx, dword [ebp - 0x3c]
push edx
call fcn.0048f06d
add esp, 4
mov eax, dword [ebp - 0x70]
dec eax
mov dword [ebp - 0x28], 0xf
mov dword [ebp - 0x2c], 0
mov byte [ebp - 0x3c], 0
je 0x56d14f
dec eax
je 0x56d137
dec eax
jne 0x56d160
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x56d160
push eax
call dword [0x610120]
jmp 0x56d160
cmp byte [ebp - 0x60], 0
je 0x56d160
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x56d160
push eax
call fcn.0048fb0c
add esp, 4
jmp 0x56d160
mov eax, dword [ebp - 0xa8]
test eax, eax
je 0x56d160
push eax
call dword [0x6100e8]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov al, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x10