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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x3c8]
cmp eax, dword [ecx + 8]
jbe 0x56e3ad
sub esp, 0x448
mov ebx, dword [esp + 0x44c]
movzx ebp, byte [ebx + 0xa8]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x56e2f4
mov eax, 1
test al, al
je 0x56e2eb
mov ecx, dword [ebx + 0x98]
mov ebp, dword [ebx + 0x94]
mov eax, dword [ebx + 0xa0]
cmp eax, ecx
jae 0x56e3a7
mov ecx, ebx
lea ebx, [eax + eax*8]
lea ebx, [ebp + ebx*8]
test ebx, ebx
je 0x56e2dc
mov ebp, dword [ebx]
cmp ebp, 0x12
je 0x56e196
mov eax, ebp
mov ebp, dword [ebx + 8]
mov dword [esp + 0x8c], ebp
mov edx, ebp
mov ebp, dword [ebx + 0xc]
mov dword [esp + 0x88], ebp
mov esi, ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 0x84], ebp
cmp eax, 0x13
jne 0x56dd8b
mov eax, ebp
mov ebp, dword [ebx + 0x20]
mov edi, ebp
mov ebp, dword [ebx + 0x24]
mov dword [esp + 0x60], ebp
mov ebp, dword [ebx + 0x28]
mov dword [esp + 0x64], ebp
mov ebp, dword [ebx + 0x14]
mov dword [esp + 0x80], ebp
mov ebp, dword [ebx + 0x18]
mov dword [esp + 0x7c], ebp
mov ebx, dword [ebx + 0x10]
mov dword [esp + 0x78], ebx
nop
mov byte [ecx + 0xa8], 0
inc dword [ecx + 0xa4]
mov ebx, dword [ecx + 0x98]
mov ebp, dword [ecx + 0x94]
mov dword [esp + 0x184], ebp
mov ebp, dword [ecx + 0xa0]
cmp ebp, ebx
jae 0x56e389
mov dword [esp + 0x180], edi
lea ebx, [ebp + ebp*8]
mov ebp, dword [esp + 0x184]
lea ebx, [ebp + ebx*8]
cmp dword [ebx], 2
sete bl
mov byte [ecx + 0x8d], bl
inc dword [ecx + 0xa0]
movzx ebx, byte [ecx + 0xa8]
test bl, bl
je 0x56dd56
mov ebx, 1
test bl, bl
je 0x56dd4f
mov ebx, dword [ecx + 0x98]
mov ebp, dword [ecx + 0x94]
mov dword [esp + 0x184], ebp
mov ebp, dword [ecx + 0xa0]
cmp ebp, ebx
jae 0x56e380
lea ebx, [ebp + ebp*8]
mov ebp, dword [esp + 0x184]
lea ebx, [ebp + ebx*8]
test ebx, ebx
je 0x56dd40
cmp dword [ebx], 0x14
jne 0x56dcca
mov ebp, dword [ebx + 0x20]
mov dword [esp + 0x160], ebp
mov ebp, dword [ebx + 0x24]
mov dword [esp + 0x38], ebp
mov ebp, dword [ebx + 0x2c]
mov dword [esp + 0x15c], ebp
mov ebp, dword [ebx + 0x30]
mov dword [esp + 0x24], ebp
mov ebp, dword [ebx + 0x34]
mov dword [esp + 0x28], ebp
mov ebp, dword [ebx + 8]
mov dword [esp + 0x80], ebp
mov ebp, dword [ebx + 0xc]
mov dword [esp + 0x7c], ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 0x78], ebp
mov ebp, dword [ebx + 0x14]
mov dword [esp + 0x74], ebp
mov ebp, dword [ebx + 0x18]
mov dword [esp + 0x70], ebp
mov ebx, dword [ebx + 0x10]
mov dword [esp + 0x6c], ebx
nop
mov byte [ecx + 0xa8], 0
inc dword [ecx + 0xa4]
mov ebx, dword [ecx + 0x98]
mov ebp, dword [ecx + 0x94]
mov dword [esp + 0x184], ebp
mov ebp, dword [ecx + 0xa0]
cmp ebp, ebx
jae 0x56e377
lea ebx, [ebp + ebp*8]
mov ebp, dword [esp + 0x184]
lea ebx, [ebp + ebx*8]
cmp dword [ebx], 2
sete bl
mov byte [ecx + 0x8d], bl
inc dword [ecx + 0xa0]
movzx ebx, byte [ecx + 0xa8]
test bl, bl
je 0x56dc95
mov ebx, 1
test bl, bl
je 0x56dc8e
mov ebx, dword [ecx + 0x98]
mov ebp, dword [ecx + 0x94]
mov dword [esp + 0x184], ebp
mov ebp, dword [ecx + 0xa0]
cmp ebp, ebx
jae 0x56e36e
lea ebx, [ebp + ebp*8]
mov ebp, dword [esp + 0x184]
lea ebx, [ebp + ebx*8]
test ebx, ebx
je 0x56dc7f
mov ebp, 1
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x130], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x58], edx
mov dword [esp + 0x128], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x120], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x54], esi
mov ebp, 1
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x130]
mov ebx, dword [esp + 0x128]
mov esi, dword [esp + 0x120]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x110], ecx
mov ecx, dword [esp + 0x160]
mov dword [esp + 0x168], ecx
mov dword [esp + 0x108], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x100], ebx
mov ebx, dword [esp + 0x15c]
mov dword [esp + 0x164], ebx
xchg ebp, eax
mov byte [esp + 0xf8], al
xchg ebp, eax
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x40], ebp
mov dword [esp + 0xf0], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x48], esi
mov dword [esp + 0xe8], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x44], edi
mov ebx, dword [esp + 0x100]
mov edi, dword [esp + 0xe8]
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x108]
movzx ebp, byte [esp + 0xf8]
mov esi, dword [esp + 0xf0]
mov dword [esp + 0x16c], edi
mov dword [esp + 0x158], ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x56dc74
mov ebp, dword [esp + 0x5c]
test ebp, ebp
je 0x56dc60
mov ebx, dword [ecx + 0xf0]
mov dword [esp + 0x80], ebx
mov dword [esp + 0xa8], eax
xor eax, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xa8]
jmp 0x56cf79
mov ebx, dword [esp + 0x4c]
inc ebx
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x4c]
cmp ebx, ebp
jle 0x56dc55
mov ebx, dword [ecx + 0xec]
mov dword [esp + 0x17c], ebx
mov ebx, dword [ecx + 0xf0]
cmp ebp, ebx
jae 0x56e341
lea ebx, [ebp + ebp*2]
mov dword [esp + 0x7c], ebx
mov ebp, dword [esp + 0x17c]
lea ebx, [ebp + ebx*8]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x7c]
lea ebp, [ebp + ebx*8]
mov ebp, dword [ebp]
mov dword [esp + 0x170], ebp
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x5c]
cmp ebx, ebp
je 0x56dc06
xor ebx, ebx
test bl, bl
je 0x56cf69
mov ebx, dword [ecx + 0xec]
mov ebp, dword [ecx + 0xf0]
mov edi, dword [esp + 0x4c]
cmp edi, ebp
jae 0x56e338
mov ebp, dword [esp + 0x7c]
lea edi, [ebx + ebp*8]
mov edi, dword [edi + 0x10]
mov dword [esp + 0x80], edi
lea ebx, [ebx + ebp*8 + 0xc]
mov ebx, dword [ebx]
test edi, edi
ja 0x56dbb3
xor ebp, ebp
xor ebp, ebp
mov dword [esp + 0x180], ebp
xor ebp, ebp
mov dword [esp + 0x40], ebp
mov eax, dword [esp + 0x180]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
call fcn.0045e900
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x80]
lea edx, [ecx + eax]
mov dword [esp + 0x7c], edx
mov ebx, dword [esp + 0x40]
cmp edx, ebx
ja 0x56db76
mov ebp, dword [esp + 0x180]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x180], ebp
add ecx, ebp
mov dword [esp], ecx
mov ecx, dword [esp + 0x164]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0045e900
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x180]
test eax, eax
jne 0x56d144
mov ecx, dword [esp + 0x44c]
mov dword [ecx], 4
mov dword [ecx + 0x24], 0x14
mov edx, dword [0x770e60]
test edx, edx
jne 0x56d134
lea edx, [0x5f0f0b]
mov dword [ecx + 0x20], edx
mov edx, dword [esp + 0x84]
mov dword [ecx + 0x28], edx
mov edx, dword [esp + 0x8c]
mov dword [ecx + 0x2c], edx
mov edx, dword [esp + 0x88]
mov dword [ecx + 0x30], edx
mov dword [ecx + 8], 0x1a
mov edx, dword [0x770e60]
test edx, edx
jne 0x56d124
lea eax, [0x5f3b29]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x1c], eax
mov byte [esp + 0x458], 0
add esp, 0x448
ret
lea edi, [ecx + 4]
lea eax, [0x5f3b29]
call fcn.0045df70
jmp 0x56d100
lea edi, [ecx + 0x20]
lea eax, [0x5f0f0b]
call fcn.0045df70
jmp 0x56d0c8
mov dword [esp + 0x3c], eax
test eax, eax
sete bl
mov byte [esp + 0x22], bl
movzx ebp, byte [esp + 0x455]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x56db6a
mov ebp, dword [esp + 0x158]
cmp dword [ebp], 0xe
jne 0x56d287
mov ebx, dword [ebp + 0x14]
mov edi, ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x80], ecx
mov ebp, dword [ebp + 0x10]
mov eax, dword [esp + 0x44c]
mov dword [eax + 0xd0], 0xa
mov eax, edi
lea edi, [esp + 0x398]
lea esi, [0x63c97c]
call fcn.0045e634
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x39c], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x3a0], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x3a8], ebp
mov dword [esp + 0x3ac], ebx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x3b0], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x3c8], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x3cc], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x3d0], ecx
mov dword [esp + 0x3d4], edx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x3d8], ecx
mov dword [esp + 0x3dc], eax
movzx eax, byte [esp + 0x22]
mov byte [esp + 0x3ec], al
mov edi, dword [esp + 0x450]
test byte [edi], al
mov eax, dword [0x770e60]
test eax, eax
jne 0x56d268
lea esi, [esp + 0x398]
call fcn.0045e634
mov byte [esp + 0x458], 1
add esp, 0x448
ret
lea eax, [0x5de900]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x398]
mov dword [esp + 8], eax
call fcn.004106b0
jmp 0x56d259
mov dword [esp + 0x40], ecx
mov esi, ebx
mov ebx, dword [ebp]
cmp ebx, 0x15
jne 0x56d4c6
mov ebx, dword [ebp + 0x14]
mov edi, ebx
mov ebx, dword [ebp + 0x18]
mov dword [esp + 0x80], ebx
mov ebx, dword [ebp + 0x10]
test eax, eax
jne 0x56d4b1
cmp byte [ebp + 0x44], 1
jne 0x56d4b1
mov esi, 1
xor esi, esi
xchg esi, eax
mov byte [esp + 0x22], al
xchg esi, eax
mov esi, 1
mov dword [esp + 0x7c], ebx
mov ebp, dword [esp + 0x44c]
mov ebx, dword [ebp + 0xd8]
mov ebp, dword [ebp + 0xd4]
mov dword [esp + 0x178], ebp
lea ebp, [ebx - 1]
cmp ebx, ebp
jbe 0x56e32f
mov ebp, dword [esp + 0x178]
mov ebx, dword [ebp + ebx*4 - 4]
mov ebp, dword [esp + 0x44c]
mov dword [ebp + 0xd0], ebx
mov ebx, dword [ebp + 0xdc]
mov ebp, dword [ebp + 0xd8]
dec ebp
cmp ebx, ebp
jb 0x56e326
xchg esi, eax
mov byte [esp + 0x23], al
xchg esi, eax
mov ebx, dword [esp + 0x44c]
mov dword [ebx + 0xd8], ebp
mov ebp, edi
lea edi, [esp + 0x340]
lea esi, [0x63c714]
call fcn.0045e634
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x344], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x348], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x34c], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x350], ecx
mov dword [esp + 0x354], ebp
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x358], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x370], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x374], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x378], ecx
mov dword [esp + 0x37c], edx
mov dword [esp + 0x380], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x384], ecx
mov ecx, dword [esp + 0x158]
mov edx, dword [ecx + 0x20]
mov ebp, dword [ecx + 0x24]
mov eax, ebx
mov ebx, dword [ecx + 0x28]
mov dword [esp + 0x388], edx
mov dword [esp + 0x38c], ebp
mov dword [esp + 0x390], ebx
movzx edx, byte [esp + 0x23]
mov byte [esp + 0x394], dl
movzx edx, byte [esp + 0x22]
mov byte [esp + 0x395], dl
movzx ecx, byte [ecx + 0x44]
mov byte [esp + 0x396], cl
mov edi, dword [esp + 0x450]
test byte [edi], al
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x56d48b
lea esi, [esp + 0x340]
call fcn.0045e634
nop
mov byte [eax + 0xa8], 0
inc dword [eax + 0xa4]
mov ecx, dword [eax + 0x98]
mov edx, dword [eax + 0x94]
mov ebx, dword [eax + 0xa0]
cmp ebx, ecx
jae 0x56e31f
lea ecx, [ebx + ebx*8]
lea ecx, [edx + ecx*8]
cmp dword [ecx], 2
sete cl
mov byte [eax + 0x8d], cl
inc dword [eax + 0xa0]
mov byte [esp + 0x458], 1
add esp, 0x448
ret
lea eax, [0x5de900]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x340]
mov dword [esp + 8], eax
call fcn.004106b0
mov eax, dword [esp + 0x44c]
jmp 0x56d43c
cmp eax, 1
jne 0x56d4bf
cmp byte [edx], 0x21
je 0x56d2bd
xor esi, esi
jmp 0x56d2cf
cmp ebx, 0xa
jne 0x56d5e2
mov ebx, dword [ebp + 0x14]
mov edi, ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x80], ecx
mov ebp, dword [ebp + 0x10]
mov eax, dword [esp + 0x44c]
mov dword [eax + 0xd0], 0xe
mov eax, edi
lea edi, [esp + 0x2e8]
lea esi, [0x63c9d4]
call fcn.0045e634
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x2ec], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x2f0], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x2f4], ecx
mov dword [esp + 0x2f8], ebp
mov dword [esp + 0x2fc], ebx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x300], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x318], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x31c], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x320], ecx
mov dword [esp + 0x324], edx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x328], ecx
mov dword [esp + 0x32c], eax
movzx eax, byte [esp + 0x22]
mov byte [esp + 0x33c], al
mov edi, dword [esp + 0x450]
test byte [edi], al
mov eax, dword [0x770e60]
test eax, eax
jne 0x56d5c3
lea esi, [esp + 0x2e8]
call fcn.0045e634
mov byte [esp + 0x458], 1
add esp, 0x448
ret
lea eax, [0x5de900]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x2e8]
mov dword [esp + 8], eax
call fcn.004106b0
jmp 0x56d5b4
cmp ebx, 0xc
jne 0x56d6fe
mov ebx, dword [ebp + 0x14]
mov edi, ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x80], ecx
mov ebp, dword [ebp + 0x10]
mov eax, dword [esp + 0x44c]
mov dword [eax + 0xd0], 0x13
mov eax, edi
lea edi, [esp + 0x290]
lea esi, [0x63ca2c]
call fcn.0045e634
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x294], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x298], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x29c], ecx
mov dword [esp + 0x2a0], ebp
mov dword [esp + 0x2a4], ebx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x2a8], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x2c0], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x2c4], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x2c8], ecx
mov dword [esp + 0x2cc], edx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x2d0], ecx
mov dword [esp + 0x2d4], eax
movzx eax, byte [esp + 0x22]
mov byte [esp + 0x2e4], al
mov edi, dword [esp + 0x450]
test byte [edi], al
mov eax, dword [0x770e60]
test eax, eax
jne 0x56d6df
lea esi, [esp + 0x290]
call fcn.0045e634
mov byte [esp + 0x458], 1
add esp, 0x448
ret
lea eax, [0x5de900]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x290]
mov dword [esp + 8], eax
call fcn.004106b0
jmp 0x56d6d0
mov edi, ebp
movzx ebp, byte [esp + 0x454]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x56d832
cmp ebx, 7
jne 0x56d82e
mov ebx, dword [edi + 0x14]
mov ebp, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x80], ecx
mov edi, eax
mov eax, dword [esp + 0x44c]
mov dword [eax + 0xd0], 8
mov eax, edi
lea edi, [esp + 0x238]
lea esi, [0x63c97c]
call fcn.0045e634
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x23c], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x240], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x244], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x248], ecx
mov dword [esp + 0x24c], ebx
mov dword [esp + 0x250], ebp
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x268], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x26c], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x270], ecx
mov dword [esp + 0x274], edx
mov dword [esp + 0x278], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x27c], eax
movzx eax, byte [esp + 0x22]
mov byte [esp + 0x28c], al
mov edi, dword [esp + 0x450]
test byte [edi], al
mov eax, dword [0x770e60]
test eax, eax
jne 0x56d80f
lea esi, [esp + 0x238]
call fcn.0045e634
mov byte [esp + 0x458], 1
add esp, 0x448
ret
lea eax, [0x5de900]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x238]
mov dword [esp + 8], eax
call fcn.004106b0
jmp 0x56d800
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x56d954
cmp ebx, 8
jne 0x56d954
mov ebx, dword [edi + 0x14]
mov ebp, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x80], ecx
mov edi, eax
mov eax, dword [esp + 0x44c]
mov dword [eax + 0xd0], 0xb
mov eax, edi
lea edi, [esp + 0x1e0]
lea esi, [0x63ca84]
call fcn.0045e634
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x1e4], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x1e8], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x1ec], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x1f4], ebx
mov dword [esp + 0x1f8], ebp
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x210], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x214], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x218], ecx
mov dword [esp + 0x21c], edx
mov dword [esp + 0x220], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x224], eax
movzx eax, byte [esp + 0x22]
mov byte [esp + 0x234], al
mov edi, dword [esp + 0x450]
test byte [edi], al
mov eax, dword [0x770e60]
test eax, eax
jne 0x56d935
lea esi, [esp + 0x1e0]
call fcn.0045e634
mov byte [esp + 0x458], 1
add esp, 0x448
ret
lea eax, [0x5de900]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x1e0]
mov dword [esp + 8], eax
call fcn.004106b0
jmp 0x56d926
mov ebx, dword [esp + 0x60]
test ebx, ebx
jle 0x56daac
mov ebp, dword [esp + 0x44c]
mov edi, ebx
mov ebx, dword [ebp + 0xd8]
mov ebp, dword [ebp + 0xd4]
mov dword [esp + 0x174], ebp
lea ebp, [ebx - 1]
cmp ebx, ebp
jbe 0x56e316
mov ebp, dword [esp + 0x174]
mov ebx, dword [ebp + ebx*4 - 4]
mov ebp, dword [esp + 0x44c]
mov dword [ebp + 0xd0], ebx
mov ebx, dword [ebp + 0xdc]
mov eax, dword [ebp + 0xd8]
dec eax
cmp ebx, eax
jb 0x56e30d
mov dword [ebp + 0xd8], eax
mov eax, edi
lea edi, [esp + 0x188]
mov ebx, esi
lea esi, [0x63cadc]
call fcn.0045e634
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x18c], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x190], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x194], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x198], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x19c], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x1a0], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], edx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1cc], eax
mov byte [esp + 0x1dc], bl
mov edi, dword [esp + 0x450]
test byte [edi], al
mov eax, dword [0x770e60]
test eax, eax
jne 0x56da8d
lea esi, [esp + 0x188]
call fcn.0045e634
mov byte [esp + 0x458], 1
add esp, 0x448
ret
lea eax, [0x5de900]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x188]
mov dword [esp + 8], eax
call fcn.004106b0
jmp 0x56da7e
test eax, eax
jg 0x56d960
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x56db5a
lea eax, [0x5f3db3]
mov ecx, 0x1a
nop
mov edx, dword [edi + 8]
mov ebx, dword [edi + 0xc]
mov ebp, dword [edi + 4]
mov esi, dword [esp + 0x44c]
mov dword [esi], 4
mov dword [esi + 0x24], ecx
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x56db50
mov dword [esi + 0x20], eax
mov ecx, dword [esp + 0x84]
mov dword [esi + 0x28], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esi + 0x2c], ecx
mov ecx, dword [esp + 0x88]
mov dword [esi + 0x30], ecx
mov dword [esi + 8], 0x22
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x56db40
lea eax, [0x5f6f3e]
mov dword [esi + 4], eax
mov dword [esi + 0x14], ebp
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], ebx
mov byte [esp + 0x458], 0
add esp, 0x448
ret
lea edi, [esi + 4]
lea eax, [0x5f6f3e]
call fcn.0045df70
jmp 0x56db28
lea edi, [esi + 0x20]
call fcn.0045df70
jmp 0x56daf0
lea eax, [0x5f36b2]
mov ecx, 0x19
jmp 0x56dac9
mov ebp, dword [esp + 0x158]
jmp 0x56d287
lea eax, [0x5bec80]
mov dword [esp], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.004450a0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x80]
jmp 0x56d066
mov dword [esp + 0x180], ebx
lea eax, [0x5bec80]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], edi
call fcn.004450a0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x180]
mov edi, dword [esp + 0x80]
mov dword [esp + 0x180], eax
jmp 0x56d026
mov eax, dword [esp + 0x170]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00402890
movzx ebx, byte [esp + 0xc]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x44c]
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x16c]
jmp 0x56cfde
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x56d099
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x164]
jmp 0x56d144
xor eax, eax
xor edx, edx
xor ecx, ecx
jmp 0x56d144
mov byte [esp + 0x458], 0
add esp, 0x448
ret
xor ebx, ebx
jmp 0x56cdee
mov dword [esp], ecx
call fcn.00574da0
movzx ebx, byte [esp + 4]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x44c]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x180]
jmp 0x56cdb6
xor ebp, ebp
xor ebp, ebp
mov dword [esp + 0x38], ebp
xor ebp, ebp
mov dword [esp + 0x160], ebp
xor ebp, ebp
mov dword [esp + 0x28], ebp
xor ebp, ebp
mov dword [esp + 0x24], ebp
xor ebp, ebp
mov dword [esp + 0x15c], ebp
xor ebp, ebp
mov dword [esp + 0x34], ebp
xor ebp, ebp
mov dword [esp + 0x2c], ebp
xor ebp, ebp
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x50], eax
mov dword [esp + 0x148], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x54], ecx
xor ebp, ebp
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x148]
jmp 0x56ce79
mov byte [esp + 0x458], 0
add esp, 0x448
ret
xor ebx, ebx
jmp 0x56cceb
mov dword [esp], ecx
call fcn.00574da0
movzx ebx, byte [esp + 4]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x44c]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x180]
jmp 0x56ccb3
cmp eax, 0x14
jne 0x56e130
mov eax, ebp
mov ebp, dword [ebx + 0x20]
mov edi, ebp
mov ebp, dword [ebx + 0x24]
mov dword [esp + 0x38], ebp
mov ebp, dword [ebx + 0x2c]
mov dword [esp + 0x15c], ebp
mov ebp, dword [ebx + 0x30]
mov dword [esp + 0x24], ebp
mov ebp, dword [ebx + 0x34]
mov dword [esp + 0x28], ebp
mov ebp, dword [ebx + 0x14]
mov dword [esp + 0x80], ebp
mov ebp, dword [ebx + 0x18]
mov dword [esp + 0x7c], ebp
mov ebx, dword [ebx + 0x10]
mov dword [esp + 0x78], ebx
nop
mov byte [ecx + 0xa8], 0
inc dword [ecx + 0xa4]
mov ebx, dword [ecx + 0x98]
mov ebp, dword [ecx + 0x94]
mov dword [esp + 0x184], ebp
mov ebp, dword [ecx + 0xa0]
cmp ebx, ebp
jbe 0x56e365
mov dword [esp + 0x180], edi
lea ebx, [ebp + ebp*8]
mov ebp, dword [esp + 0x184]
lea ebx, [ebp + ebx*8]
cmp dword [ebx], 2
sete bl
mov byte [ecx + 0x8d], bl
inc dword [ecx + 0xa0]
movzx ebx, byte [ecx + 0xa8]
test bl, bl
je 0x56e0fb
mov ebx, 1
test bl, bl
je 0x56e0f4
mov ebx, dword [ecx + 0x98]
mov ebp, dword [ecx + 0x94]
mov dword [esp + 0x184], ebp
mov ebp, dword [ecx + 0xa0]
cmp ebx, ebp
jbe 0x56e35c
lea ebx, [ebp + ebp*8]
mov ebp, dword [esp + 0x184]
lea ebx, [ebp + ebx*8]
test ebx, ebx
je 0x56e0e5
cmp dword [ebx], 0x13
jne 0x56e096
mov ebp, dword [ebx + 0x20]
mov dword [esp + 0x16c], ebp
mov ebp, dword [ebx + 0x24]
mov dword [esp + 0x60], ebp
mov ebp, dword [ebx + 0x28]
mov dword [esp + 0x64], ebp
mov ebp, dword [ebx + 0x14]
mov dword [esp + 0x80], ebp
mov ebp, dword [ebx + 0x18]
mov dword [esp + 0x7c], ebp
mov ebx, dword [ebx + 0x10]
mov dword [esp + 0x78], ebx
nop
mov byte [ecx + 0xa8], 0
inc dword [ecx + 0xa4]
mov ebx, dword [ecx + 0x98]
mov ebp, dword [ecx + 0x94]
mov dword [esp + 0x184], ebp
mov ebp, dword [ecx + 0xa0]
cmp ebp, ebx
jae 0x56e353
lea ebx, [ebp + ebp*8]
mov ebp, dword [esp + 0x184]
lea ebx, [ebp + ebx*8]
cmp dword [ebx], 2
sete bl
mov byte [ecx + 0x8d], bl
inc dword [ecx + 0xa0]
movzx ebx, byte [ecx + 0xa8]
test bl, bl
je 0x56e061
mov ebx, 1
test bl, bl
je 0x56e05a
mov ebx, dword [ecx + 0x98]
mov ebp, dword [ecx + 0x94]
mov dword [esp + 0x184], ebp
mov ebp, dword [ecx + 0xa0]
cmp ebx, ebp
jbe 0x56e34a
lea ebx, [ebp + ebp*8]
mov ebp, dword [esp + 0x184]
lea ebx, [ebp + ebx*8]
test ebx, ebx
je 0x56e04b
mov ebp, dword [esp + 0x60]
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x90], eax
mov eax, 1
mov byte [esp + 0x21], al
mov eax, dword [esp + 0x90]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x168], edi
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0x15c]
mov dword [esp + 0x164], edx
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0xc0], ebp
mov ebp, dword [esp + 0xd0]
mov dword [esp + 0x44], ebp
mov dword [esp + 0xb8], ebp
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0x30], ebp
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0xb0], ebp
mov ebp, dword [esp + 0xc0]
mov dword [esp + 0x60], ebp
mov edi, dword [esp + 0x16c]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
movzx ebp, byte [esp + 0x21]
mov ecx, dword [esp + 0xd8]
jmp 0x56cf22
mov byte [esp + 0x458], 0
add esp, 0x448
ret
xor ebx, ebx
jmp 0x56df52
mov dword [esp], ecx
call fcn.00574da0
movzx ebx, byte [esp + 4]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x44c]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x180]
jmp 0x56df1a
xor ebp, ebp
xor ebp, ebp
mov dword [esp + 0x64], ebp
xor ebp, ebp
mov dword [esp + 0x16c], ebp
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x58], ebp
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x50], eax
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x54], ecx
xor ebp, ebp
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x98]
jmp 0x56df7d
mov byte [esp + 0x458], 0
add esp, 0x448
ret
xor ebx, ebx
jmp 0x56de75
mov dword [esp], ecx
call fcn.00574da0
movzx ebx, byte [esp + 4]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x44c]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x180]
jmp 0x56de3d
xor eax, eax
mov byte [esp + 0x21], al
xor edi, edi
mov dword [esp + 0x38], edi
xor edi, edi
xor eax, eax
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x15c], eax
xor esi, esi
xor eax, eax
xor edx, edx
xor eax, eax
mov dword [esp + 0x64], eax
xor ebp, ebp
xor eax, eax
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x50], edx
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x54], ebp
xor eax, eax
xor edx, edx
xor ebp, ebp
jmp 0x56df94
mov ebp, dword [ecx + 0xd8]
mov eax, ebx
mov ebx, dword [ecx + 0xd4]
mov edx, ebx
lea ebx, [ebp - 1]
cmp ebx, ebp
jae 0x56e39e
mov ebx, dword [edx + ebp*4 - 4]
mov dword [ecx + 0xd0], ebx
mov edx, dword [ecx + 0xdc]
mov ebx, dword [ecx + 0xd8]
dec ebx
cmp ebx, edx
ja 0x56e397
mov dword [ecx + 0xd8], ebx
lea edi, [esp + 0x3f0]
mov edx, eax
xor eax, eax
call fcn.0045e1ea
mov byte [esp + 0x3f0], 5
mov ecx, dword [edx + 8]
mov ebx, dword [edx + 0xc]
mov ebp, dword [edx + 4]
mov dword [esp + 0x3f4], ebp
mov dword [esp + 0x3f8], ecx
mov dword [esp + 0x3fc], ebx
mov ecx, dword [edx + 0x14]
mov ebx, dword [edx + 0x18]
mov ebp, dword [edx + 0x10]
mov dword [esp + 0x400], ebp
mov dword [esp + 0x404], ecx
mov dword [esp + 0x408], ebx
mov ecx, dword [edx + 0x20]
mov ebx, dword [edx + 0x24]
mov edx, dword [edx + 0x28]
mov dword [esp + 0x420], ecx
mov dword [esp + 0x424], ebx
mov dword [esp + 0x428], edx
mov edi, dword [esp + 0x450]
test byte [edi], al
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x56e2bd
lea esi, [esp + 0x3f0]
call fcn.0045e634
nop
mov edx, dword [esp + 0x44c]
mov byte [edx + 0xa8], 0
inc dword [edx + 0xa4]
mov ecx, dword [edx + 0x98]
mov ebx, dword [edx + 0x94]
mov eax, dword [edx + 0xa0]
cmp eax, ecx
jae 0x56e392
lea eax, [eax + eax*8]
lea eax, [ebx + eax*8]
cmp dword [eax], 2
sete al
mov byte [edx + 0x8d], al
inc dword [edx + 0xa0]
mov byte [esp + 0x458], 1
add esp, 0x448
ret
lea eax, [0x5de900]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x3f0]
mov dword [esp + 8], eax
call fcn.004106b0
jmp 0x56e267
mov byte [esp + 0x458], 0
add esp, 0x448
ret
mov ecx, ebx
xor ebx, ebx
jmp 0x56cbdb
mov dword [esp], ebx
call fcn.00574da0
movzx eax, byte [esp + 4]
mov ebx, dword [esp + 0x44c]
jmp 0x56cbb0
mov ecx, eax
mov edx, ebx
call fcn.0045e030
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
mov eax, ebx
call fcn.0045dff0
mov ecx, ebp
mov edx, ebx
call fcn.0045e030
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
mov eax, edi
mov ecx, ebp
call fcn.0045dff0
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
mov eax, ebp
mov ecx, ebx
call fcn.0045dff0
call fcn.0045dff0
mov ecx, ebx
call fcn.0045e030
mov eax, ebx
mov ecx, ebp
call fcn.0045dff0
call fcn.0045dff0
nop
call fcn.0045ca10
jmp fcn.0056cb70