Function at 0x401010
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x65b4
call fcn.00475b30
mov al, byte [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov ecx, esp
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x10], 0xffffffff
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x14], 0x474fe0
mov edx, dword fs:[0]
mov dword [ebp - 0x18], edx
mov dword fs:[0], ecx
and al, 1
mov byte [ebp - 0x1d], al
mov eax, esp
mov dword [eax], 0
call fcn.00457120
mov dword [esp], eax
call fcn.00481a3b
lea eax, [ebp - 0x120]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x100
call fcn.0047aac0
mov dword [ebp - 0x124], 0
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0x3750], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3750]
cmp eax, ecx
jae 0x401132
call fcn.00481a4d
mov dword [ebp - 0x3758], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x124]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x375c], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x375c]
mov esi, eax
mov eax, dword [ebp - 0x3758]
mov ecx, dword [ebp - 0x124]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x3754], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x3754]
mov dword [eax], ecx
mov eax, dword [ebp - 0x124]
add eax, 1
mov dword [ebp - 0x124], eax
jmp 0x401091
mov dword [ebp - 0x128], 0x12345678
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x130], 0
cmp dword [ebp - 0x130], 0x20
jge 0x401273
mov dword [ebp - 0x134], 0
cmp dword [ebp - 0x134], 0x40
jge 0x40125f
mov ecx, dword [ebp - 0x134]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x4011fa
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x130]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x134]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x130]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x3760], eax
mov ecx, dword [ebp - 0x134]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x3760]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x134]
add eax, 1
mov dword [ebp - 0x134], eax
jmp 0x401167
mov eax, dword [ebp - 0x130]
add eax, 1
mov dword [ebp - 0x130], eax
jmp 0x401150
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x13c], 0
cmp dword [ebp - 0x13c], 0x80
jge 0x4013f9
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x376c], eax
mov eax, dword [ebp - 0x13c]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x376c]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x3768], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3764], eax
mov eax, dword [ebp - 0x13c]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x3768]
mov ecx, edx
mov edx, dword [ebp - 0x3764]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x4013e5
mov dword [ebp - 0x140], 0
cmp dword [ebp - 0x140], 0x10
jge 0x4013e0
mov ecx, dword [ebp - 0x140]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3770], eax
mov eax, dword [ebp - 0x140]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3770]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x140]
add eax, 1
mov dword [ebp - 0x140], eax
jmp 0x401360
jmp 0x4013e5
mov eax, dword [ebp - 0x13c]
add eax, 1
mov dword [ebp - 0x13c], eax
jmp 0x401287
mov byte [ebp - 0x141], 0
test byte [ebp - 0x141], 1
je 0x401424
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x401436
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x14c], 0
cmp dword [ebp - 0x14c], 0x200
jge 0x4014e8
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x14c]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x14c]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x4014d4
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x14c]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x14c]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x14c]
add eax, 1
mov dword [ebp - 0x14c], eax
jmp 0x40144a
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x150], 0
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x3774], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3774]
cmp eax, ecx
jae 0x401599
call fcn.00481a4d
mov dword [ebp - 0x377c], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x150]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x3780], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x3780]
mov esi, eax
mov eax, dword [ebp - 0x377c]
mov ecx, dword [ebp - 0x150]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x3778], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x3778]
mov dword [eax], ecx
mov eax, dword [ebp - 0x150]
add eax, 1
mov dword [ebp - 0x150], eax
jmp 0x4014f8
mov dword [ebp - 0x154], 0
cmp dword [ebp - 0x154], 0x20
jge 0x4016c6
mov dword [ebp - 0x158], 0
cmp dword [ebp - 0x158], 0x40
jge 0x4016b2
mov ecx, dword [ebp - 0x158]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x40164d
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x154]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x158]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x154]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x3784], eax
mov ecx, dword [ebp - 0x158]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x3784]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x158]
add eax, 1
mov dword [ebp - 0x158], eax
jmp 0x4015ba
mov eax, dword [ebp - 0x154]
add eax, 1
mov dword [ebp - 0x154], eax
jmp 0x4015a3
mov dword [ebp - 0x15c], 0
cmp dword [ebp - 0x15c], 0x80
jge 0x401842
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3790], eax
mov eax, dword [ebp - 0x15c]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3790]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x378c], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3788], eax
mov eax, dword [ebp - 0x15c]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x378c]
mov ecx, edx
mov edx, dword [ebp - 0x3788]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x40182e
mov dword [ebp - 0x160], 0
cmp dword [ebp - 0x160], 0x10
jge 0x401829
mov ecx, dword [ebp - 0x160]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3794], eax
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3794]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x160]
add eax, 1
mov dword [ebp - 0x160], eax
jmp 0x4017a9
jmp 0x40182e
mov eax, dword [ebp - 0x15c]
add eax, 1
mov dword [ebp - 0x15c], eax
jmp 0x4016d0
test byte [ebp - 0x141], 1
je 0x401866
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x401878
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x164], 0
cmp dword [ebp - 0x164], 0x200
jge 0x401920
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x164]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x164]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x164]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x40190c
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x164]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x164]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x164]
add eax, 1
mov dword [ebp - 0x164], eax
jmp 0x401882
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x168], 0
mov eax, dword [ebp - 0x168]
mov dword [ebp - 0x3798], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3798]
cmp eax, ecx
jae 0x4019d1
call fcn.00481a4d
mov dword [ebp - 0x37a0], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x168]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x37a4], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x37a4]
mov esi, eax
mov eax, dword [ebp - 0x37a0]
mov ecx, dword [ebp - 0x168]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x379c], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x379c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x168]
add eax, 1
mov dword [ebp - 0x168], eax
jmp 0x401930
mov dword [ebp - 0x16c], 0
cmp dword [ebp - 0x16c], 0x20
jge 0x401afe
mov dword [ebp - 0x170], 0
cmp dword [ebp - 0x170], 0x40
jge 0x401aea
mov ecx, dword [ebp - 0x170]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x401a85
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x16c]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x170]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x16c]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x37a8], eax
mov ecx, dword [ebp - 0x170]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x37a8]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x170]
add eax, 1
mov dword [ebp - 0x170], eax
jmp 0x4019f2
mov eax, dword [ebp - 0x16c]
add eax, 1
mov dword [ebp - 0x16c], eax
jmp 0x4019db
mov dword [ebp - 0x174], 0
cmp dword [ebp - 0x174], 0x80
jge 0x401c7a
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x174]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x37b4], eax
mov eax, dword [ebp - 0x174]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x37b4]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x37b0], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x37ac], eax
mov eax, dword [ebp - 0x174]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x37b0]
mov ecx, edx
mov edx, dword [ebp - 0x37ac]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x401c66
mov dword [ebp - 0x178], 0
cmp dword [ebp - 0x178], 0x10
jge 0x401c61
mov ecx, dword [ebp - 0x178]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x37b8], eax
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x37b8]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x178]
add eax, 1
mov dword [ebp - 0x178], eax
jmp 0x401be1
jmp 0x401c66
mov eax, dword [ebp - 0x174]
add eax, 1
mov dword [ebp - 0x174], eax
jmp 0x401b08
test byte [ebp - 0x141], 1
je 0x401c9e
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x401cb0
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x17c], 0
cmp dword [ebp - 0x17c], 0x200
jge 0x401d58
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x17c]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x17c]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x401d44
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x17c]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x17c]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x17c]
add eax, 1
mov dword [ebp - 0x17c], eax
jmp 0x401cba
lea ecx, [ebp - 0x180]
call fcn.004571c0
mov dword [ebp - 0x184], 0
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x37bc], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x37bc]
cmp eax, ecx
jae 0x401e0e
call fcn.00481a4d
mov dword [ebp - 0x37c4], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x184]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x37c8], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x37c8]
mov esi, eax
mov eax, dword [ebp - 0x37c4]
mov ecx, dword [ebp - 0x184]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x37c0], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x37c0]
mov dword [eax], ecx
mov eax, dword [ebp - 0x184]
add eax, 1
mov dword [ebp - 0x184], eax
jmp 0x401d6d
mov dword [ebp - 0x188], 0
cmp dword [ebp - 0x188], 0x20
jge 0x401f3b
mov dword [ebp - 0x18c], 0
cmp dword [ebp - 0x18c], 0x40
jge 0x401f27
mov ecx, dword [ebp - 0x18c]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x401ec2
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x188]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x18c]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x188]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x37cc], eax
mov ecx, dword [ebp - 0x18c]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x37cc]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x18c]
add eax, 1
mov dword [ebp - 0x18c], eax
jmp 0x401e2f
mov eax, dword [ebp - 0x188]
add eax, 1
mov dword [ebp - 0x188], eax
jmp 0x401e18
mov dword [ebp - 0x190], 0
cmp dword [ebp - 0x190], 0x80
jge 0x4020b7
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x190]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x37d8], eax
mov eax, dword [ebp - 0x190]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x37d8]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x37d4], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x37d0], eax
mov eax, dword [ebp - 0x190]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x37d4]
mov ecx, edx
mov edx, dword [ebp - 0x37d0]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x4020a3
mov dword [ebp - 0x194], 0
cmp dword [ebp - 0x194], 0x10
jge 0x40209e
mov ecx, dword [ebp - 0x194]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x37dc], eax
mov eax, dword [ebp - 0x194]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x37dc]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x194]
add eax, 1
mov dword [ebp - 0x194], eax
jmp 0x40201e
jmp 0x4020a3
mov eax, dword [ebp - 0x190]
add eax, 1
mov dword [ebp - 0x190], eax
jmp 0x401f45
test byte [ebp - 0x141], 1
je 0x4020db
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x4020ed
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x198], 0
cmp dword [ebp - 0x198], 0x200
jge 0x402195
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x198]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x198]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x198]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x402181
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x198]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x198]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x198]
add eax, 1
mov dword [ebp - 0x198], eax
jmp 0x4020f7
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x180]
call fcn.004571d0
mov dword [ebp - 0x37e0], eax
jmp 0x4021b8
mov ecx, dword [ebp - 0x37e0]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x1520]
call fcn.004571f0
sub esp, 4
jmp 0x4021d5
mov dword [ebp - 0x1524], 0
mov eax, dword [ebp - 0x1524]
mov dword [ebp - 0x37e4], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x37e4]
cmp eax, ecx
jae 0x402280
call fcn.00481a4d
mov dword [ebp - 0x37ec], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x1524]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x37f0], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x37f0]
mov esi, eax
mov eax, dword [ebp - 0x37ec]
mov ecx, dword [ebp - 0x1524]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x37e8], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x37e8]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1524]
add eax, 1
mov dword [ebp - 0x1524], eax
jmp 0x4021df
mov dword [ebp - 0x1528], 0
cmp dword [ebp - 0x1528], 0x20
jge 0x4023ad
mov dword [ebp - 0x152c], 0
cmp dword [ebp - 0x152c], 0x40
jge 0x402399
mov ecx, dword [ebp - 0x152c]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x402334
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x1528]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x152c]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x1528]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x37f4], eax
mov ecx, dword [ebp - 0x152c]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x37f4]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x152c]
add eax, 1
mov dword [ebp - 0x152c], eax
jmp 0x4022a1
mov eax, dword [ebp - 0x1528]
add eax, 1
mov dword [ebp - 0x1528], eax
jmp 0x40228a
mov dword [ebp - 0x1530], 0
cmp dword [ebp - 0x1530], 0x80
jge 0x402529
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x1530]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3800], eax
mov eax, dword [ebp - 0x1530]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3800]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x37fc], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x37f8], eax
mov eax, dword [ebp - 0x1530]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x37fc]
mov ecx, edx
mov edx, dword [ebp - 0x37f8]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x402515
mov dword [ebp - 0x1534], 0
cmp dword [ebp - 0x1534], 0x10
jge 0x402510
mov ecx, dword [ebp - 0x1534]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3804], eax
mov eax, dword [ebp - 0x1534]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3804]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x1534]
add eax, 1
mov dword [ebp - 0x1534], eax
jmp 0x402490
jmp 0x402515
mov eax, dword [ebp - 0x1530]
add eax, 1
mov dword [ebp - 0x1530], eax
jmp 0x4023b7
test byte [ebp - 0x141], 1
je 0x40254d
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x40255f
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x1538], 0
cmp dword [ebp - 0x1538], 0x200
jge 0x402607
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x1538]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x1538]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1538]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x4025f3
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x1538]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x1538]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1538]
add eax, 1
mov dword [ebp - 0x1538], eax
jmp 0x402569
mov eax, dword [ebp - 0x148]
lea eax, [ebp - 0x15ac]
mov dword [ebp - 0x380c], eax
mov dword [ebp - 0x15b0], eax
mov dword [ebp - 0x10], 6
lea ecx, [ebp - 0x15b4]
call fcn.00457230
mov dword [ebp - 0x3808], eax
jmp 0x40263c
mov ecx, dword [ebp - 0x3808]
call fcn.00457300
mov dword [ebp - 0x3810], eax
jmp 0x402652
mov ecx, dword [ebp - 0x380c]
mov edx, dword [ebp - 0x3810]
mov eax, esp
mov dword [eax], edx
call fcn.00457320
sub esp, 4
jmp 0x40266f
mov eax, dword [ebp - 0x380c]
add eax, 0x18
mov dword [ebp - 0x3818], eax
mov dword [ebp - 0x15b0], eax
lea ecx, [ebp - 0x15b8]
call fcn.00457400
mov dword [ebp - 0x3814], eax
jmp 0x40269a
mov ecx, dword [ebp - 0x3814]
call fcn.004574d0
mov dword [ebp - 0x381c], eax
jmp 0x4026b0
mov ecx, dword [ebp - 0x3818]
mov edx, dword [ebp - 0x381c]
mov eax, esp
mov dword [eax], edx
call fcn.00457320
sub esp, 4
jmp 0x4026cd
mov eax, dword [ebp - 0x3818]
add eax, 0x18
mov dword [ebp - 0x3824], eax
mov dword [ebp - 0x15b0], eax
lea ecx, [ebp - 0x15bc]
call fcn.004574f0
mov ecx, eax
call fcn.004574d0
mov dword [ebp - 0x3820], eax
jmp 0x4026ff
mov ecx, dword [ebp - 0x3824]
mov edx, dword [ebp - 0x3820]
mov eax, esp
mov dword [eax], edx
call fcn.00457320
sub esp, 4
jmp 0x40271c
mov eax, dword [ebp - 0x3824]
add eax, 0x18
mov dword [ebp - 0x382c], eax
mov dword [ebp - 0x15b0], eax
lea ecx, [ebp - 0x15c0]
call fcn.004575c0
mov dword [ebp - 0x3828], eax
jmp 0x402747
mov ecx, dword [ebp - 0x3828]
call fcn.00457690
mov dword [ebp - 0x3830], eax
jmp 0x40275d
mov ecx, dword [ebp - 0x382c]
mov edx, dword [ebp - 0x3830]
mov eax, esp
mov dword [eax], edx
call fcn.00457320
sub esp, 4
jmp 0x40277a
lea eax, [ebp - 0x15ac]
mov dword [ebp - 0x154c], eax
lea eax, [ebp - 0x154c]
mov dword [ebp - 0x1548], eax
lea esi, [ebp - 0x15c4]
mov ecx, esi
call fcn.004571c0
mov ecx, dword [ebp - 0x154c]
mov edx, dword [ebp - 0x1548]
mov dword [ebp - 0x10], 5
mov eax, esp
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
lea ecx, [ebp - 0x1544]
call fcn.004576e0
sub esp, 0xc
jmp 0x4027cf
lea eax, [ebp - 0x15ac]
mov dword [ebp - 0x3838], eax
add eax, 0x60
mov dword [ebp - 0x3834], eax
mov ecx, dword [ebp - 0x3834]
add ecx, 0xffffffe8
mov dword [ebp - 0x383c], ecx
call fcn.004576b0
mov ecx, dword [ebp - 0x3838]
mov eax, dword [ebp - 0x383c]
cmp eax, ecx
mov dword [ebp - 0x3834], eax
jne 0x4027e4
mov dword [ebp - 0x15c8], 0
mov eax, dword [ebp - 0x15c8]
mov dword [ebp - 0x3840], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3840]
cmp eax, ecx
jae 0x4028bd
call fcn.00481a4d
mov dword [ebp - 0x3848], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x15c8]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x384c], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x384c]
mov esi, eax
mov eax, dword [ebp - 0x3848]
mov ecx, dword [ebp - 0x15c8]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x3844], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x3844]
mov dword [eax], ecx
mov eax, dword [ebp - 0x15c8]
add eax, 1
mov dword [ebp - 0x15c8], eax
jmp 0x40281c
mov dword [ebp - 0x15cc], 0
cmp dword [ebp - 0x15cc], 0x20
jge 0x4029ea
mov dword [ebp - 0x15d0], 0
cmp dword [ebp - 0x15d0], 0x40
jge 0x4029d6
mov ecx, dword [ebp - 0x15d0]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x402971
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x15cc]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x15d0]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x15cc]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x3864], eax
mov ecx, dword [ebp - 0x15d0]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x3864]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x15d0]
add eax, 1
mov dword [ebp - 0x15d0], eax
jmp 0x4028de
mov eax, dword [ebp - 0x15cc]
add eax, 1
mov dword [ebp - 0x15cc], eax
jmp 0x4028c7
mov dword [ebp - 0x15d4], 0
cmp dword [ebp - 0x15d4], 0x80
jge 0x402b66
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x15d4]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3870], eax
mov eax, dword [ebp - 0x15d4]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3870]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x386c], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3868], eax
mov eax, dword [ebp - 0x15d4]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x386c]
mov ecx, edx
mov edx, dword [ebp - 0x3868]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x402b52
mov dword [ebp - 0x15d8], 0
cmp dword [ebp - 0x15d8], 0x10
jge 0x402b4d
mov ecx, dword [ebp - 0x15d8]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3874], eax
mov eax, dword [ebp - 0x15d8]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3874]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x15d8]
add eax, 1
mov dword [ebp - 0x15d8], eax
jmp 0x402acd
jmp 0x402b52
mov eax, dword [ebp - 0x15d4]
add eax, 1
mov dword [ebp - 0x15d4], eax
jmp 0x4029f4
test byte [ebp - 0x141], 1
je 0x402b8a
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x402b9c
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x15dc], 0
cmp dword [ebp - 0x15dc], 0x200
jge 0x402c44
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x15dc]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x15dc]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x15dc]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x402c30
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x15dc]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x15dc]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x15dc]
add eax, 1
mov dword [ebp - 0x15dc], eax
jmp 0x402ba6
mov eax, dword [ebp - 0x148]
lea ecx, [ebp - 0x1544]
call fcn.00457780
mov ecx, eax
add ecx, 0xffffffff
mov dword [ebp - 0x10], 1
mov eax, esp
mov dword [eax + 4], ecx
mov dword [eax], 0
lea ecx, [ebp - 0x15e4]
call fcn.004577b0
sub esp, 8
jmp 0x402c7f
mov dword [ebp - 0x15e8], 0
mov eax, dword [ebp - 0x15e8]
mov dword [ebp - 0x3878], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3878]
cmp eax, ecx
jae 0x402d2a
call fcn.00481a4d
mov dword [ebp - 0x3880], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x15e8]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x3884], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x3884]
mov esi, eax
mov eax, dword [ebp - 0x3880]
mov ecx, dword [ebp - 0x15e8]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x387c], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x387c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x15e8]
add eax, 1
mov dword [ebp - 0x15e8], eax
jmp 0x402c89
mov dword [ebp - 0x15ec], 0
cmp dword [ebp - 0x15ec], 0x20
jge 0x402e57
mov dword [ebp - 0x15f0], 0
cmp dword [ebp - 0x15f0], 0x40
jge 0x402e43
mov ecx, dword [ebp - 0x15f0]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x402dde
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x15ec]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x15f0]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x15ec]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x3888], eax
mov ecx, dword [ebp - 0x15f0]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x3888]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x15f0]
add eax, 1
mov dword [ebp - 0x15f0], eax
jmp 0x402d4b
mov eax, dword [ebp - 0x15ec]
add eax, 1
mov dword [ebp - 0x15ec], eax
jmp 0x402d34
mov dword [ebp - 0x15f4], 0
cmp dword [ebp - 0x15f4], 0x80
jge 0x402fd3
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x15f4]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3894], eax
mov eax, dword [ebp - 0x15f4]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3894]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x3890], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x388c], eax
mov eax, dword [ebp - 0x15f4]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x3890]
mov ecx, edx
mov edx, dword [ebp - 0x388c]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x402fbf
mov dword [ebp - 0x15f8], 0
cmp dword [ebp - 0x15f8], 0x10
jge 0x402fba
mov ecx, dword [ebp - 0x15f8]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3898], eax
mov eax, dword [ebp - 0x15f8]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3898]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x15f8]
add eax, 1
mov dword [ebp - 0x15f8], eax
jmp 0x402f3a
jmp 0x402fbf
mov eax, dword [ebp - 0x15f4]
add eax, 1
mov dword [ebp - 0x15f4], eax
jmp 0x402e61
test byte [ebp - 0x141], 1
je 0x402ff7
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x403009
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x15fc], 0
cmp dword [ebp - 0x15fc], 0x200
jge 0x4030b1
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x15fc]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x15fc]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x15fc]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x40309d
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x15fc]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x15fc]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x15fc]
add eax, 1
mov dword [ebp - 0x15fc], eax
jmp 0x403013
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x1600], 0
mov eax, dword [ebp - 0x1600]
mov dword [ebp - 0x389c], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x389c]
cmp eax, ecx
jae 0x403162
call fcn.00481a4d
mov dword [ebp - 0x38a4], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x1600]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x38a8], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x38a8]
mov esi, eax
mov eax, dword [ebp - 0x38a4]
mov ecx, dword [ebp - 0x1600]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x38a0], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x38a0]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1600]
add eax, 1
mov dword [ebp - 0x1600], eax
jmp 0x4030c1
mov dword [ebp - 0x1604], 0
cmp dword [ebp - 0x1604], 0x20
jge 0x40328f
mov dword [ebp - 0x1608], 0
cmp dword [ebp - 0x1608], 0x40
jge 0x40327b
mov ecx, dword [ebp - 0x1608]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x403216
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x1604]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x1608]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x1604]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x38ac], eax
mov ecx, dword [ebp - 0x1608]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x38ac]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x1608]
add eax, 1
mov dword [ebp - 0x1608], eax
jmp 0x403183
mov eax, dword [ebp - 0x1604]
add eax, 1
mov dword [ebp - 0x1604], eax
jmp 0x40316c
mov dword [ebp - 0x160c], 0
cmp dword [ebp - 0x160c], 0x80
jge 0x40340b
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x160c]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x38b8], eax
mov eax, dword [ebp - 0x160c]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x38b8]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x38b4], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x38b0], eax
mov eax, dword [ebp - 0x160c]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x38b4]
mov ecx, edx
mov edx, dword [ebp - 0x38b0]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x4033f7
mov dword [ebp - 0x1610], 0
cmp dword [ebp - 0x1610], 0x10
jge 0x4033f2
mov ecx, dword [ebp - 0x1610]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x38bc], eax
mov eax, dword [ebp - 0x1610]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x38bc]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x1610]
add eax, 1
mov dword [ebp - 0x1610], eax
jmp 0x403372
jmp 0x4033f7
mov eax, dword [ebp - 0x160c]
add eax, 1
mov dword [ebp - 0x160c], eax
jmp 0x403299
test byte [ebp - 0x141], 1
je 0x40342f
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x403441
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x1614], 0
cmp dword [ebp - 0x1614], 0x200
jge 0x4034e9
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x1614]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x1614]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1614]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x4034d5
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x1614]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x1614]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1614]
add eax, 1
mov dword [ebp - 0x1614], eax
jmp 0x40344b
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x1618], 0
mov eax, dword [ebp - 0x1618]
mov dword [ebp - 0x38c0], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x38c0]
cmp eax, ecx
jae 0x40359a
call fcn.00481a4d
mov dword [ebp - 0x38c8], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x1618]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x38cc], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x38cc]
mov esi, eax
mov eax, dword [ebp - 0x38c8]
mov ecx, dword [ebp - 0x1618]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x38c4], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x38c4]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1618]
add eax, 1
mov dword [ebp - 0x1618], eax
jmp 0x4034f9
mov dword [ebp - 0x161c], 0
cmp dword [ebp - 0x161c], 0x20
jge 0x4036c7
mov dword [ebp - 0x1620], 0
cmp dword [ebp - 0x1620], 0x40
jge 0x4036b3
mov ecx, dword [ebp - 0x1620]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x40364e
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x161c]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x1620]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x161c]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x38d0], eax
mov ecx, dword [ebp - 0x1620]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x38d0]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x1620]
add eax, 1
mov dword [ebp - 0x1620], eax
jmp 0x4035bb
mov eax, dword [ebp - 0x161c]
add eax, 1
mov dword [ebp - 0x161c], eax
jmp 0x4035a4
mov dword [ebp - 0x1624], 0
cmp dword [ebp - 0x1624], 0x80
jge 0x403843
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x1624]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x38dc], eax
mov eax, dword [ebp - 0x1624]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x38dc]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x38d8], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x38d4], eax
mov eax, dword [ebp - 0x1624]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x38d8]
mov ecx, edx
mov edx, dword [ebp - 0x38d4]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x40382f
mov dword [ebp - 0x1628], 0
cmp dword [ebp - 0x1628], 0x10
jge 0x40382a
mov ecx, dword [ebp - 0x1628]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x38e0], eax
mov eax, dword [ebp - 0x1628]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x38e0]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x1628]
add eax, 1
mov dword [ebp - 0x1628], eax
jmp 0x4037aa
jmp 0x40382f
mov eax, dword [ebp - 0x1624]
add eax, 1
mov dword [ebp - 0x1624], eax
jmp 0x4036d1
test byte [ebp - 0x141], 1
je 0x403867
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x403879
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x162c], 0
cmp dword [ebp - 0x162c], 0x200
jge 0x403921
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x162c]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x162c]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x162c]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x40390d
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x162c]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x162c]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x162c]
add eax, 1
mov dword [ebp - 0x162c], eax
jmp 0x403883
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x1630], 0
mov eax, dword [ebp - 0x1630]
mov dword [ebp - 0x38e4], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x38e4]
cmp eax, ecx
jae 0x4039d2
call fcn.00481a4d
mov dword [ebp - 0x38ec], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x1630]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x38f0], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x38f0]
mov esi, eax
mov eax, dword [ebp - 0x38ec]
mov ecx, dword [ebp - 0x1630]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x38e8], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x38e8]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1630]
add eax, 1
mov dword [ebp - 0x1630], eax
jmp 0x403931
mov dword [ebp - 0x1634], 0
cmp dword [ebp - 0x1634], 0x20
jge 0x403aff
mov dword [ebp - 0x1638], 0
cmp dword [ebp - 0x1638], 0x40
jge 0x403aeb
mov ecx, dword [ebp - 0x1638]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x403a86
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x1634]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x1638]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x1634]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x38f4], eax
mov ecx, dword [ebp - 0x1638]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x38f4]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x1638]
add eax, 1
mov dword [ebp - 0x1638], eax
jmp 0x4039f3
mov eax, dword [ebp - 0x1634]
add eax, 1
mov dword [ebp - 0x1634], eax
jmp 0x4039dc
mov dword [ebp - 0x163c], 0
cmp dword [ebp - 0x163c], 0x80
jge 0x403c7b
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x163c]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3900], eax
mov eax, dword [ebp - 0x163c]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3900]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x38fc], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x38f8], eax
mov eax, dword [ebp - 0x163c]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x38fc]
mov ecx, edx
mov edx, dword [ebp - 0x38f8]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x403c67
mov dword [ebp - 0x1640], 0
cmp dword [ebp - 0x1640], 0x10
jge 0x403c62
mov ecx, dword [ebp - 0x1640]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3904], eax
mov eax, dword [ebp - 0x1640]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3904]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x1640]
add eax, 1
mov dword [ebp - 0x1640], eax
jmp 0x403be2
jmp 0x403c67
mov eax, dword [ebp - 0x163c]
add eax, 1
mov dword [ebp - 0x163c], eax
jmp 0x403b09
test byte [ebp - 0x141], 1
je 0x403c9f
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x403cb1
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x1644], 0
cmp dword [ebp - 0x1644], 0x200
jge 0x403d59
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x1644]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x1644]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1644]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x403d45
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x1644]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x1644]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1644]
add eax, 1
mov dword [ebp - 0x1644], eax
jmp 0x403cbb
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x1648], 0
mov eax, dword [ebp - 0x1648]
mov dword [ebp - 0x3908], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3908]
cmp eax, ecx
jae 0x403e0a
call fcn.00481a4d
mov dword [ebp - 0x3910], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x1648]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x3914], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x3914]
mov esi, eax
mov eax, dword [ebp - 0x3910]
mov ecx, dword [ebp - 0x1648]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x390c], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x390c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1648]
add eax, 1
mov dword [ebp - 0x1648], eax
jmp 0x403d69
mov dword [ebp - 0x164c], 0
cmp dword [ebp - 0x164c], 0x20
jge 0x403f37
mov dword [ebp - 0x1650], 0
cmp dword [ebp - 0x1650], 0x40
jge 0x403f23
mov ecx, dword [ebp - 0x1650]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x403ebe
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x164c]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x1650]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x164c]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x3918], eax
mov ecx, dword [ebp - 0x1650]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x3918]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x1650]
add eax, 1
mov dword [ebp - 0x1650], eax
jmp 0x403e2b
mov eax, dword [ebp - 0x164c]
add eax, 1
mov dword [ebp - 0x164c], eax
jmp 0x403e14
mov dword [ebp - 0x1654], 0
cmp dword [ebp - 0x1654], 0x80
jge 0x4040b3
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x1654]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3924], eax
mov eax, dword [ebp - 0x1654]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3924]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x3920], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x391c], eax
mov eax, dword [ebp - 0x1654]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x3920]
mov ecx, edx
mov edx, dword [ebp - 0x391c]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x40409f
mov dword [ebp - 0x1658], 0
cmp dword [ebp - 0x1658], 0x10
jge 0x40409a
mov ecx, dword [ebp - 0x1658]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3928], eax
mov eax, dword [ebp - 0x1658]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3928]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x1658]
add eax, 1
mov dword [ebp - 0x1658], eax
jmp 0x40401a
jmp 0x40409f
mov eax, dword [ebp - 0x1654]
add eax, 1
mov dword [ebp - 0x1654], eax
jmp 0x403f41
test byte [ebp - 0x141], 1
je 0x4040d7
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x4040e9
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x165c], 0
cmp dword [ebp - 0x165c], 0x200
jge 0x404191
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x165c]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x165c]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x165c]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x40417d
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x165c]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x165c]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x165c]
add eax, 1
mov dword [ebp - 0x165c], eax
jmp 0x4040f3
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x1660], 0
mov eax, dword [ebp - 0x1660]
mov dword [ebp - 0x392c], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x392c]
cmp eax, ecx
jae 0x404242
call fcn.00481a4d
mov dword [ebp - 0x3934], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x1660]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x3938], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x3938]
mov esi, eax
mov eax, dword [ebp - 0x3934]
mov ecx, dword [ebp - 0x1660]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x3930], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x3930]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1660]
add eax, 1
mov dword [ebp - 0x1660], eax
jmp 0x4041a1
mov dword [ebp - 0x1664], 0
cmp dword [ebp - 0x1664], 0x20
jge 0x40436f
mov dword [ebp - 0x1668], 0
cmp dword [ebp - 0x1668], 0x40
jge 0x40435b
mov ecx, dword [ebp - 0x1668]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x4042f6
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x1664]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x1668]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x1664]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x393c], eax
mov ecx, dword [ebp - 0x1668]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x393c]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x1668]
add eax, 1
mov dword [ebp - 0x1668], eax
jmp 0x404263
mov eax, dword [ebp - 0x1664]
add eax, 1
mov dword [ebp - 0x1664], eax
jmp 0x40424c
mov dword [ebp - 0x166c], 0
cmp dword [ebp - 0x166c], 0x80
jge 0x4044eb
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x166c]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3948], eax
mov eax, dword [ebp - 0x166c]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3948]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x3944], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3940], eax
mov eax, dword [ebp - 0x166c]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x3944]
mov ecx, edx
mov edx, dword [ebp - 0x3940]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x4044d7
mov dword [ebp - 0x1670], 0
cmp dword [ebp - 0x1670], 0x10
jge 0x4044d2
mov ecx, dword [ebp - 0x1670]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x394c], eax
mov eax, dword [ebp - 0x1670]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x394c]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x1670]
add eax, 1
mov dword [ebp - 0x1670], eax
jmp 0x404452
jmp 0x4044d7
mov eax, dword [ebp - 0x166c]
add eax, 1
mov dword [ebp - 0x166c], eax
jmp 0x404379
test byte [ebp - 0x141], 1
je 0x40450f
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x404521
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x1674], 0
cmp dword [ebp - 0x1674], 0x200
jge 0x4045c9
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x1674]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x1674]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1674]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x4045b5
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x1674]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x1674]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1674]
add eax, 1
mov dword [ebp - 0x1674], eax
jmp 0x40452b
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x1678], 0
mov eax, dword [ebp - 0x1678]
mov dword [ebp - 0x3950], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3950]
cmp eax, ecx
jae 0x40467a
call fcn.00481a4d
mov dword [ebp - 0x3958], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x1678]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x395c], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x395c]
mov esi, eax
mov eax, dword [ebp - 0x3958]
mov ecx, dword [ebp - 0x1678]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x3954], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x3954]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1678]
add eax, 1
mov dword [ebp - 0x1678], eax
jmp 0x4045d9
mov dword [ebp - 0x167c], 0
cmp dword [ebp - 0x167c], 0x20
jge 0x4047a7
mov dword [ebp - 0x1680], 0
cmp dword [ebp - 0x1680], 0x40
jge 0x404793
mov ecx, dword [ebp - 0x1680]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x40472e
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x167c]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x1680]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x167c]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x3960], eax
mov ecx, dword [ebp - 0x1680]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x3960]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x1680]
add eax, 1
mov dword [ebp - 0x1680], eax
jmp 0x40469b
mov eax, dword [ebp - 0x167c]
add eax, 1
mov dword [ebp - 0x167c], eax
jmp 0x404684
mov dword [ebp - 0x1684], 0
cmp dword [ebp - 0x1684], 0x80
jge 0x404923
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x1684]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x396c], eax
mov eax, dword [ebp - 0x1684]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x396c]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x3968], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3964], eax
mov eax, dword [ebp - 0x1684]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x3968]
mov ecx, edx
mov edx, dword [ebp - 0x3964]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x40490f
mov dword [ebp - 0x1688], 0
cmp dword [ebp - 0x1688], 0x10
jge 0x40490a
mov ecx, dword [ebp - 0x1688]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3970], eax
mov eax, dword [ebp - 0x1688]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3970]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x1688]
add eax, 1
mov dword [ebp - 0x1688], eax
jmp 0x40488a
jmp 0x40490f
mov eax, dword [ebp - 0x1684]
add eax, 1
mov dword [ebp - 0x1684], eax
jmp 0x4047b1
test byte [ebp - 0x141], 1
je 0x404947
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x404959
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x168c], 0
cmp dword [ebp - 0x168c], 0x200
jge 0x404a01
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x168c]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x168c]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x168c]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x4049ed
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x168c]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x168c]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x168c]
add eax, 1
mov dword [ebp - 0x168c], eax
jmp 0x404963
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x1690], 0
mov eax, dword [ebp - 0x1690]
mov dword [ebp - 0x3974], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3974]
cmp eax, ecx
jae 0x404ab2
call fcn.00481a4d
mov dword [ebp - 0x397c], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x1690]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x3980], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x3980]
mov esi, eax
mov eax, dword [ebp - 0x397c]
mov ecx, dword [ebp - 0x1690]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x3978], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x3978]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1690]
add eax, 1
mov dword [ebp - 0x1690], eax
jmp 0x404a11
mov dword [ebp - 0x1694], 0
cmp dword [ebp - 0x1694], 0x20
jge 0x404bdf
mov dword [ebp - 0x1698], 0
cmp dword [ebp - 0x1698], 0x40
jge 0x404bcb
mov ecx, dword [ebp - 0x1698]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x404b66
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x1694]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x1698]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x1694]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x3984], eax
mov ecx, dword [ebp - 0x1698]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x3984]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x1698]
add eax, 1
mov dword [ebp - 0x1698], eax
jmp 0x404ad3
mov eax, dword [ebp - 0x1694]
add eax, 1
mov dword [ebp - 0x1694], eax
jmp 0x404abc
mov dword [ebp - 0x169c], 0
cmp dword [ebp - 0x169c], 0x80
jge 0x404d5b
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x169c]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3990], eax
mov eax, dword [ebp - 0x169c]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3990]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x398c], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3988], eax
mov eax, dword [ebp - 0x169c]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x398c]
mov ecx, edx
mov edx, dword [ebp - 0x3988]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x404d47
mov dword [ebp - 0x16a0], 0
cmp dword [ebp - 0x16a0], 0x10
jge 0x404d42
mov ecx, dword [ebp - 0x16a0]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3994], eax
mov eax, dword [ebp - 0x16a0]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3994]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x16a0]
add eax, 1
mov dword [ebp - 0x16a0], eax
jmp 0x404cc2
jmp 0x404d47
mov eax, dword [ebp - 0x169c]
add eax, 1
mov dword [ebp - 0x169c], eax
jmp 0x404be9
test byte [ebp - 0x141], 1
je 0x404d7f
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x404d91
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x16a4], 0
cmp dword [ebp - 0x16a4], 0x200
jge 0x404e39
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x16a4]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x16a4]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x16a4]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x404e25
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x16a4]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x16a4]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x16a4]
add eax, 1
mov dword [ebp - 0x16a4], eax
jmp 0x404d9b
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x16a8], 0
mov eax, dword [ebp - 0x16a8]
mov dword [ebp - 0x3998], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3998]
cmp eax, ecx
jae 0x404eea
call fcn.00481a4d
mov dword [ebp - 0x39a0], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x16a8]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x39a4], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x39a4]
mov esi, eax
mov eax, dword [ebp - 0x39a0]
mov ecx, dword [ebp - 0x16a8]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x399c], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x399c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x16a8]
add eax, 1
mov dword [ebp - 0x16a8], eax
jmp 0x404e49
mov dword [ebp - 0x16ac], 0
cmp dword [ebp - 0x16ac], 0x20
jge 0x405017
mov dword [ebp - 0x16b0], 0
cmp dword [ebp - 0x16b0], 0x40
jge 0x405003
mov ecx, dword [ebp - 0x16b0]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x404f9e
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x16ac]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x16b0]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x16ac]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x39a8], eax
mov ecx, dword [ebp - 0x16b0]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x39a8]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x16b0]
add eax, 1
mov dword [ebp - 0x16b0], eax
jmp 0x404f0b
mov eax, dword [ebp - 0x16ac]
add eax, 1
mov dword [ebp - 0x16ac], eax
jmp 0x404ef4
mov dword [ebp - 0x16b4], 0
cmp dword [ebp - 0x16b4], 0x80
jge 0x405193
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x16b4]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x39b4], eax
mov eax, dword [ebp - 0x16b4]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x39b4]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x39b0], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x39ac], eax
mov eax, dword [ebp - 0x16b4]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x39b0]
mov ecx, edx
mov edx, dword [ebp - 0x39ac]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x40517f
mov dword [ebp - 0x16b8], 0
cmp dword [ebp - 0x16b8], 0x10
jge 0x40517a
mov ecx, dword [ebp - 0x16b8]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x39b8], eax
mov eax, dword [ebp - 0x16b8]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x39b8]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x16b8]
add eax, 1
mov dword [ebp - 0x16b8], eax
jmp 0x4050fa
jmp 0x40517f
mov eax, dword [ebp - 0x16b4]
add eax, 1
mov dword [ebp - 0x16b4], eax
jmp 0x405021
test byte [ebp - 0x141], 1
je 0x4051b7
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x4051c9
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x16bc], 0
cmp dword [ebp - 0x16bc], 0x200
jge 0x405271
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x16bc]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x16bc]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x16bc]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x40525d
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x16bc]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x16bc]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x16bc]
add eax, 1
mov dword [ebp - 0x16bc], eax
jmp 0x4051d3
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x16c0], 0
mov eax, dword [ebp - 0x16c0]
mov dword [ebp - 0x39bc], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x39bc]
cmp eax, ecx
jae 0x405322
call fcn.00481a4d
mov dword [ebp - 0x39c4], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x16c0]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x39c8], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x39c8]
mov esi, eax
mov eax, dword [ebp - 0x39c4]
mov ecx, dword [ebp - 0x16c0]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x39c0], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x39c0]
mov dword [eax], ecx
mov eax, dword [ebp - 0x16c0]
add eax, 1
mov dword [ebp - 0x16c0], eax
jmp 0x405281
mov dword [ebp - 0x16c4], 0
cmp dword [ebp - 0x16c4], 0x20
jge 0x40544f
mov dword [ebp - 0x16c8], 0
cmp dword [ebp - 0x16c8], 0x40
jge 0x40543b
mov ecx, dword [ebp - 0x16c8]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x4053d6
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x16c4]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x16c8]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x16c4]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x39cc], eax
mov ecx, dword [ebp - 0x16c8]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x39cc]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x16c8]
add eax, 1
mov dword [ebp - 0x16c8], eax
jmp 0x405343
mov eax, dword [ebp - 0x16c4]
add eax, 1
mov dword [ebp - 0x16c4], eax
jmp 0x40532c
mov dword [ebp - 0x16cc], 0
cmp dword [ebp - 0x16cc], 0x80
jge 0x4055cb
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x16cc]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x39d8], eax
mov eax, dword [ebp - 0x16cc]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x39d8]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x39d4], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x39d0], eax
mov eax, dword [ebp - 0x16cc]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x39d4]
mov ecx, edx
mov edx, dword [ebp - 0x39d0]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x4055b7
mov dword [ebp - 0x16d0], 0
cmp dword [ebp - 0x16d0], 0x10
jge 0x4055b2
mov ecx, dword [ebp - 0x16d0]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x39dc], eax
mov eax, dword [ebp - 0x16d0]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x39dc]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x16d0]
add eax, 1
mov dword [ebp - 0x16d0], eax
jmp 0x405532
jmp 0x4055b7
mov eax, dword [ebp - 0x16cc]
add eax, 1
mov dword [ebp - 0x16cc], eax
jmp 0x405459
test byte [ebp - 0x141], 1
je 0x4055ef
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x405601
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x16d4], 0
cmp dword [ebp - 0x16d4], 0x200
jge 0x4056a9
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x16d4]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x16d4]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x16d4]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x405695
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x16d4]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x16d4]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x16d4]
add eax, 1
mov dword [ebp - 0x16d4], eax
jmp 0x40560b
mov eax, dword [ebp - 0x148]
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x10], 1
test al, 1
je 0x40570f
lea ecx, [ebp - 0x16f0]
call fcn.004577f0
mov dword [ebp - 0x39e0], eax
jmp 0x4056d7
mov ecx, dword [ebp - 0x39e0]
call fcn.004578b0
mov dword [ebp - 0x39e4], eax
jmp 0x4056ed
mov ecx, dword [ebp - 0x39e4]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x16ec]
call fcn.00457320
sub esp, 4
jmp 0x40570a
jmp 0x405768
mov eax, esp
lea ecx, [ebp - 0x1520]
mov dword [eax], ecx
lea ecx, [ebp - 0x15e4]
call fcn.00457900
sub esp, 4
mov dword [ebp - 0x39e8], eax
jmp 0x405732
mov ecx, dword [ebp - 0x39e8]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x1544]
call fcn.004578d0
sub esp, 4
mov ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x16ec]
call fcn.00457930
sub esp, 4
jmp 0x405763
jmp 0x405768
mov dword [ebp - 0x16f4], 0
mov eax, dword [ebp - 0x16f4]
mov dword [ebp - 0x39ec], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x39ec]
cmp eax, ecx
jae 0x405813
call fcn.00481a4d
mov dword [ebp - 0x39f4], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x16f4]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x39f8], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x39f8]
mov esi, eax
mov eax, dword [ebp - 0x39f4]
mov ecx, dword [ebp - 0x16f4]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x39f0], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x39f0]
mov dword [eax], ecx
mov eax, dword [ebp - 0x16f4]
add eax, 1
mov dword [ebp - 0x16f4], eax
jmp 0x405772
mov dword [ebp - 0x16f8], 0
cmp dword [ebp - 0x16f8], 0x20
jge 0x405940
mov dword [ebp - 0x16fc], 0
cmp dword [ebp - 0x16fc], 0x40
jge 0x40592c
mov ecx, dword [ebp - 0x16fc]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x4058c7
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x16f8]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x16fc]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x16f8]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x39fc], eax
mov ecx, dword [ebp - 0x16fc]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x39fc]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x16fc]
add eax, 1
mov dword [ebp - 0x16fc], eax
jmp 0x405834
mov eax, dword [ebp - 0x16f8]
add eax, 1
mov dword [ebp - 0x16f8], eax
jmp 0x40581d
mov dword [ebp - 0x1700], 0
cmp dword [ebp - 0x1700], 0x80
jge 0x405abc
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x1700]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3a08], eax
mov eax, dword [ebp - 0x1700]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3a08]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x3a04], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3a00], eax
mov eax, dword [ebp - 0x1700]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x3a04]
mov ecx, edx
mov edx, dword [ebp - 0x3a00]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x405aa8
mov dword [ebp - 0x1704], 0
cmp dword [ebp - 0x1704], 0x10
jge 0x405aa3
mov ecx, dword [ebp - 0x1704]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3a0c], eax
mov eax, dword [ebp - 0x1704]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3a0c]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x1704]
add eax, 1
mov dword [ebp - 0x1704], eax
jmp 0x405a23
jmp 0x405aa8
mov eax, dword [ebp - 0x1700]
add eax, 1
mov dword [ebp - 0x1700], eax
jmp 0x40594a
test byte [ebp - 0x141], 1
je 0x405ae0
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x405af2
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x1708], 0
cmp dword [ebp - 0x1708], 0x200
jge 0x405b9a
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x1708]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x1708]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1708]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x405b86
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x1708]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x1708]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1708]
add eax, 1
mov dword [ebp - 0x1708], eax
jmp 0x405afc
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x170c], 0
mov eax, dword [ebp - 0x170c]
mov dword [ebp - 0x3a10], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3a10]
cmp eax, ecx
jae 0x405c4b
call fcn.00481a4d
mov dword [ebp - 0x3a18], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x170c]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x3a1c], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x3a1c]
mov esi, eax
mov eax, dword [ebp - 0x3a18]
mov ecx, dword [ebp - 0x170c]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x3a14], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x3a14]
mov dword [eax], ecx
mov eax, dword [ebp - 0x170c]
add eax, 1
mov dword [ebp - 0x170c], eax
jmp 0x405baa
mov dword [ebp - 0x1710], 0
cmp dword [ebp - 0x1710], 0x20
jge 0x405d78
mov dword [ebp - 0x1714], 0
cmp dword [ebp - 0x1714], 0x40
jge 0x405d64
mov ecx, dword [ebp - 0x1714]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x405cff
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x1710]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x1714]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x1710]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x3a20], eax
mov ecx, dword [ebp - 0x1714]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x3a20]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x1714]
add eax, 1
mov dword [ebp - 0x1714], eax
jmp 0x405c6c
mov eax, dword [ebp - 0x1710]
add eax, 1
mov dword [ebp - 0x1710], eax
jmp 0x405c55
mov dword [ebp - 0x1718], 0
cmp dword [ebp - 0x1718], 0x80
jge 0x405ef4
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x1718]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3a2c], eax
mov eax, dword [ebp - 0x1718]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3a2c]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x3a28], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3a24], eax
mov eax, dword [ebp - 0x1718]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x3a28]
mov ecx, edx
mov edx, dword [ebp - 0x3a24]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x405ee0
mov dword [ebp - 0x171c], 0
cmp dword [ebp - 0x171c], 0x10
jge 0x405edb
mov ecx, dword [ebp - 0x171c]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3a30], eax
mov eax, dword [ebp - 0x171c]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3a30]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x171c]
add eax, 1
mov dword [ebp - 0x171c], eax
jmp 0x405e5b
jmp 0x405ee0
mov eax, dword [ebp - 0x1718]
add eax, 1
mov dword [ebp - 0x1718], eax
jmp 0x405d82
test byte [ebp - 0x141], 1
je 0x405f18
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x405f2a
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x1720], 0
cmp dword [ebp - 0x1720], 0x200
jge 0x405fd2
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x1720]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x1720]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1720]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x405fbe
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x1720]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x1720]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1720]
add eax, 1
mov dword [ebp - 0x1720], eax
jmp 0x405f34
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x1724], 0
mov eax, dword [ebp - 0x1724]
mov dword [ebp - 0x3a34], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3a34]
cmp eax, ecx
jae 0x406083
call fcn.00481a4d
mov dword [ebp - 0x3a3c], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x1724]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x3a40], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x3a40]
mov esi, eax
mov eax, dword [ebp - 0x3a3c]
mov ecx, dword [ebp - 0x1724]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x3a38], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x3a38]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1724]
add eax, 1
mov dword [ebp - 0x1724], eax
jmp 0x405fe2
mov dword [ebp - 0x1728], 0
cmp dword [ebp - 0x1728], 0x20
jge 0x4061b0
mov dword [ebp - 0x172c], 0
cmp dword [ebp - 0x172c], 0x40
jge 0x40619c
mov ecx, dword [ebp - 0x172c]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x406137
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x1728]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x172c]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x1728]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x3a44], eax
mov ecx, dword [ebp - 0x172c]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x3a44]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x172c]
add eax, 1
mov dword [ebp - 0x172c], eax
jmp 0x4060a4
mov eax, dword [ebp - 0x1728]
add eax, 1
mov dword [ebp - 0x1728], eax
jmp 0x40608d
mov dword [ebp - 0x1730], 0
cmp dword [ebp - 0x1730], 0x80
jge 0x40632c
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x1730]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3a50], eax
mov eax, dword [ebp - 0x1730]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3a50]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x3a4c], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3a48], eax
mov eax, dword [ebp - 0x1730]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x3a4c]
mov ecx, edx
mov edx, dword [ebp - 0x3a48]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x406318
mov dword [ebp - 0x1734], 0
cmp dword [ebp - 0x1734], 0x10
jge 0x406313
mov ecx, dword [ebp - 0x1734]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3a54], eax
mov eax, dword [ebp - 0x1734]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3a54]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x1734]
add eax, 1
mov dword [ebp - 0x1734], eax
jmp 0x406293
jmp 0x406318
mov eax, dword [ebp - 0x1730]
add eax, 1
mov dword [ebp - 0x1730], eax
jmp 0x4061ba
test byte [ebp - 0x141], 1
je 0x406350
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x406362
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x1738], 0
cmp dword [ebp - 0x1738], 0x200
jge 0x40640a
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x1738]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x1738]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1738]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x4063f6
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x1738]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x1738]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1738]
add eax, 1
mov dword [ebp - 0x1738], eax
jmp 0x40636c
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x173c], 0
mov eax, dword [ebp - 0x173c]
mov dword [ebp - 0x3a58], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3a58]
cmp eax, ecx
jae 0x4064bb
call fcn.00481a4d
mov dword [ebp - 0x3a60], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x173c]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x3a64], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x3a64]
mov esi, eax
mov eax, dword [ebp - 0x3a60]
mov ecx, dword [ebp - 0x173c]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x3a5c], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x3a5c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x173c]
add eax, 1
mov dword [ebp - 0x173c], eax
jmp 0x40641a
mov dword [ebp - 0x1740], 0
cmp dword [ebp - 0x1740], 0x20
jge 0x4065e8
mov dword [ebp - 0x1744], 0
cmp dword [ebp - 0x1744], 0x40
jge 0x4065d4
mov ecx, dword [ebp - 0x1744]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x40656f
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x1740]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x1744]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x1740]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x3a68], eax
mov ecx, dword [ebp - 0x1744]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x3a68]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x1744]
add eax, 1
mov dword [ebp - 0x1744], eax
jmp 0x4064dc
mov eax, dword [ebp - 0x1740]
add eax, 1
mov dword [ebp - 0x1740], eax
jmp 0x4064c5
mov dword [ebp - 0x1748], 0
cmp dword [ebp - 0x1748], 0x80
jge 0x406764
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x1748]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3a74], eax
mov eax, dword [ebp - 0x1748]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3a74]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x3a70], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3a6c], eax
mov eax, dword [ebp - 0x1748]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x3a70]
mov ecx, edx
mov edx, dword [ebp - 0x3a6c]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x406750
mov dword [ebp - 0x174c], 0
cmp dword [ebp - 0x174c], 0x10
jge 0x40674b
mov ecx, dword [ebp - 0x174c]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3a78], eax
mov eax, dword [ebp - 0x174c]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3a78]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x174c]
add eax, 1
mov dword [ebp - 0x174c], eax
jmp 0x4066cb
jmp 0x406750
mov eax, dword [ebp - 0x1748]
add eax, 1
mov dword [ebp - 0x1748], eax
jmp 0x4065f2
test byte [ebp - 0x141], 1
je 0x406788
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x40679a
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x1750], 0
cmp dword [ebp - 0x1750], 0x200
jge 0x406842
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x1750]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x1750]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1750]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x40682e
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x1750]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x1750]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1750]
add eax, 1
mov dword [ebp - 0x1750], eax
jmp 0x4067a4
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x1754], 0
mov eax, dword [ebp - 0x1754]
mov dword [ebp - 0x3a7c], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3a7c]
cmp eax, ecx
jae 0x4068f3
call fcn.00481a4d
mov dword [ebp - 0x3a84], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x1754]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x3a88], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x3a88]
mov esi, eax
mov eax, dword [ebp - 0x3a84]
mov ecx, dword [ebp - 0x1754]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x3a80], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x3a80]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1754]
add eax, 1
mov dword [ebp - 0x1754], eax
jmp 0x406852
mov dword [ebp - 0x1758], 0
cmp dword [ebp - 0x1758], 0x20
jge 0x406a20
mov dword [ebp - 0x175c], 0
cmp dword [ebp - 0x175c], 0x40
jge 0x406a0c
mov ecx, dword [ebp - 0x175c]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x4069a7
mov eax, dword [ebp - 0x128]
shl eax, 3
mov ecx, dword [ebp - 0x1758]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x175c]
and ecx, 0xff
mov edx, dword [ebp - 0x128]
or edx, dword [ebp - 0x1758]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov eax, ecx
shl eax, 3
sar ecx, 5
xor eax, ecx
mov dword [ebp - 0x3a8c], eax
mov ecx, dword [ebp - 0x175c]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x3a8c]
mov ecx, dword [ecx]
xor eax, ecx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x175c]
add eax, 1
mov dword [ebp - 0x175c], eax
jmp 0x406914
mov eax, dword [ebp - 0x1758]
add eax, 1
mov dword [ebp - 0x1758], eax
jmp 0x4068fd
mov dword [ebp - 0x1760], 0
cmp dword [ebp - 0x1760], 0x80
jge 0x406b9c
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x1760]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3a98], eax
mov eax, dword [ebp - 0x1760]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3a98]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x3a94], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3a90], eax
mov eax, dword [ebp - 0x1760]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x3a94]
mov ecx, edx
mov edx, dword [ebp - 0x3a90]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x406b88
mov dword [ebp - 0x1764], 0
cmp dword [ebp - 0x1764], 0x10
jge 0x406b83
mov ecx, dword [ebp - 0x1764]
mov edx, ecx
add edx, 0x3f
test ecx, ecx
mov eax, ecx
cmovs eax, edx
and eax, 0xffffffc0
sub ecx, eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov dword [ebp - 0x3a9c], eax
mov eax, dword [ebp - 0x1764]
mov ecx, dword [ebp - 0x138]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
mov ecx, eax
mov eax, dword [ebp - 0x3a9c]
xor eax, ecx
add eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x1764]
add eax, 1
mov dword [ebp - 0x1764], eax
jmp 0x406b03
jmp 0x406b88
mov eax, dword [ebp - 0x1760]
add eax, 1
mov dword [ebp - 0x1760], eax
jmp 0x406a2a
test byte [ebp - 0x141], 1
je 0x406bc0
mov eax, dword [ebp - 0x138]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
jmp 0x406bd2
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x1768], 0
cmp dword [ebp - 0x1768], 0x200
jge 0x406c7a
mov eax, dword [ebp - 0x128]
add eax, dword [ebp - 0x1768]
mov ecx, dword [ebp - 0x138]
sub ecx, dword [ebp - 0x1768]
imul eax, ecx
xor eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1768]
mov ecx, 0x10
cdq
idiv ecx
cmp edx, 0
jne 0x406c66
mov eax, dword [ebp - 0x148]
shl eax, 3
mov ecx, dword [ebp - 0x1768]
sar ecx, 2
xor eax, ecx
mov ecx, dword [ebp - 0x138]
and ecx, 0xff
mov edx, dword [ebp - 0x148]
or edx, dword [ebp - 0x1768]
xor ecx, edx
add eax, ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1768]
add eax, 1
mov dword [ebp - 0x1768], eax
jmp 0x406bdc
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x176c], 0
mov eax, dword [ebp - 0x176c]
mov dword [ebp - 0x3aa0], eax
lea ecx, [ebp - 0x120]
call fcn.00457140
mov ecx, eax
mov eax, dword [ebp - 0x3aa0]
cmp eax, ecx
jae 0x406d2b
call fcn.00481a4d
mov dword [ebp - 0x3aa8], eax
call fcn.00481a4d
shl eax, 3
mov ecx, dword [ebp - 0x176c]
sar ecx, 2
xor eax, ecx
mov dword [ebp - 0x3aac], eax
call fcn.00481a4d
mov edx, dword [ebp - 0x3aac]
mov esi, eax
mov eax, dword [ebp - 0x3aa8]
mov ecx, dword [ebp - 0x176c]
or esi, ecx
xor esi, 0x40
add edx, esi
xor eax, edx
mov dword [ebp - 0x3aa4], eax
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov ecx, dword [ebp - 0x3aa4]
mov dword [eax], ecx
mov eax, dword [ebp - 0x176c]
add eax, 1
mov dword [ebp - 0x176c], eax
jmp 0x406c8a
mov dword [ebp - 0x1770], 0
cmp dword [ebp - 0x1770], 0x20
jge 0x406e58
mov dword [ebp - 0x1774], 0
cmp dword [ebp - 0x1774], 0x40
jge 0x406e44
mov ecx, dword [ebp - 0x1774]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x120]
call fcn.00457160
sub esp, 4
mov eax, dword [eax]
mov ecx, dword [ebp - 0x128]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00457180
xor eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
and eax, 0x1f
cmp eax, 0
jne 0x406ddf
mov eax, dword [ebp - 0x1770]
add eax, 1
mov dword [ebp - 0x1770], eax
jmp 0x406d35
mov dword [ebp - 0x1778], 0
cmp dword [ebp - 0x1778], 0x80
jge 0x406fd4
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x1778]
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
mov edx, dword [ebp - 0x138]
sar edx, 2
xor ecx, edx
mov edx, dword [ebp - 0x128]
and edx, 0xff
mov esi, dword [ebp - 0x12c]
or esi, dword [ebp - 0x138]
xor edx, esi
add ecx, edx
xor eax, ecx
xor eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3abc], eax
mov eax, dword [ebp - 0x1778]
mov ecx, 8
cdq
idiv ecx
mov eax, dword [ebp - 0x3abc]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x3ab8], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x3ab4], eax
mov eax, dword [ebp - 0x1778]
mov ecx, 5
cdq
idiv ecx
mov eax, dword [ebp - 0x3ab8]
mov ecx, edx
mov edx, dword [ebp - 0x3ab4]
sar edx, cl
mov ecx, edx
add eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, 7
cdq
idiv ecx
cmp edx, 0
jne 0x406fc0
test byte [ebp - 0x141], 1
je 0x406ff8