Function at 0x4095a0
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b1283
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x2dc
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov eax, dword [0xac7e94]
and eax, 1
jne 0x4095f1
mov eax, dword [0xac7e94]
or eax, 1
mov dword [0xac7e94], eax
mov ecx, 0xac7e4c
call fcn.0040bd34
push 0x4b2038
call fcn.0049b67d
pop ecx
mov dword [ebp - 0x90], 0xf6af1124
mov dword [ebp - 0xc8], 9
mov dword [ebp - 0x1b4], 8
mov dword [ebp - 0x22c], 0
push 2
lea ecx, [ebp - 0x1fc]
call fcn.0040bc20
mov dword [ebp - 0x18c], 0xffffffff
push 2
lea ecx, [ebp - 0x208]
call fcn.0040bc20
mov dword [ebp - 0x1d8], 0xffffffff
mov dword [ebp - 0x20], 0
jmp 0x409657
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x409673
push dword [ebp - 0x20]
lea ecx, [ebp - 0x1fc]
call fcn.0040bd0e
mov dword [eax], 0xfffffff8
jmp 0x409650
mov dword [ebp - 0x20], 0
jmp 0x409683
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x40969f
push dword [ebp - 0x20]
lea ecx, [ebp - 0x208]
call fcn.0040bd0e
mov dword [eax], 0xe703026d
jmp 0x40967c
mov dword [ebp - 0x90], 0
jmp 0x4096b8
mov eax, dword [ebp - 0x90]
dec eax
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0xfffffff6
jl 0x40985e
mov dword [ebp - 0x38], 0xe29ea414
mov dword [ebp - 0x40], 0x82d83d78
mov dword [ebp - 0x94], 6
mov dword [ebp - 0x174], 0xd357
mov dword [ebp - 0x190], 0xffffffff
cmp dword [ebp - 0xc8], 0
jne 0x40976a
push 0
lea ecx, [ebp - 0x1fc]
call fcn.0040bd0e
cmp dword [eax], 0
jne 0x409760
cmp dword [ebp - 0x38], 0
je 0x409724
cmp dword [ebp - 0x38], 0
je 0x409724
mov dword [ebp - 0xf4], 1
jmp 0x40972b
and dword [ebp - 0xf4], 0
mov eax, dword [ebp - 0x94]
cmp dword [ebp - 0xf4], eax
jge 0x409745
mov dword [ebp - 0x108], 1
jmp 0x40974c
and dword [ebp - 0x108], 0
mov eax, dword [ebp - 0x40]
cmp dword [ebp - 0x108], eax
jl 0x409760
and dword [ebp - 0x154], 0
jmp 0x40976a
mov dword [ebp - 0x154], 1
mov eax, dword [ebp - 0x18c]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0x6fbfcc01
je 0x409788
mov dword [ebp - 0xc0], 1
jmp 0x40978f
and dword [ebp - 0xc0], 0
cmp dword [ebp - 0xc0], 0xf3392002
jb 0x4097a7
mov dword [ebp - 0x130], 1
jmp 0x4097ae
and dword [ebp - 0x130], 0
mov eax, dword [ebp - 0x38]
push 1
lea ecx, [ebp - 0x208]
call fcn.0040bd0e
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xc8]
sub eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa4]
mov ecx, dword [ecx]
sub ecx, eax
imul eax, ecx, 0xffffffff
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0xa4]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 0xa4]
mov dword [ecx], eax
cmp dword [ebp - 0x198], 0xa9c5
jle 0x40980c
mov dword [ebp - 0x110], 1
jmp 0x409813
and dword [ebp - 0x110], 0
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x190]
push eax
lea eax, [ebp - 0x1d8]
push eax
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x174]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x1b4]
push eax
call fcn.00408f8a
add esp, 0x20
jmp 0x4096ab
lea ecx, [ebp - 0x208]
call fcn.0040bcf2
lea ecx, [ebp - 0x1fc]
call fcn.0040bcf2
mov ecx, dword [ebp + 0xc]
call fcn.00408257
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xd0], 0x57e2
mov dword [ebp - 0x17c], 0xaa63c8
cmp dword [ebp - 0xd0], 0x5b13
jle 0x409951
and dword [ebp - 0x78], 0
jmp 0x4098b3
mov eax, dword [ebp - 0x78]
inc eax
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0xedc
jge 0x409951
and dword [ebp - 0x48], 0
jmp 0x4098cd
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0x2fd9
jge 0x40994c
and dword [ebp - 0x8c], 0
jmp 0x4098ec
mov eax, dword [ebp - 0x8c]
inc eax
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0x4126
jge 0x409947
mov eax, dword [ebp - 0x78]
add eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x8c]
shl eax, cl
cdq
mov dword [ebp - 0x1a4], eax
mov dword [ebp - 0x1a0], edx
push dword [ebp - 0x1a0]
push dword [ebp - 0x1a4]
lea ecx, [ebp - 0x2d4]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.0040b8c0
push eax
call fcn.0049b6a7
pop ecx
lea ecx, [ebp - 0x2d4]
call fcn.0040b8b6
jmp 0x4098df
jmp 0x4098c6
jmp 0x4098ac
mov dword [ebp - 0x18], 0x91a049fe
and dword [ebp - 4], 0
cmp dword [ebp - 0xd0], 0x542a
jge 0x409974
push dword [ebp - 0x17c]
call fcn.0049b6a7
pop ecx
jmp 0x409990
or dword [ebp - 4], 0xffffffff
jmp 0x40999a
mov dword [ebp - 0x238], 0xffffffff
mov dword [ebp - 0x150], 0xdcee
mov dword [ebp - 0x18], 0
jmp 0x4099be
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0x1a
je 0x409a2e
push 1
lea ecx, [ebp - 0x214]
call fcn.0040bc20
mov dword [ebp - 0x1ec], 0xbf90350d
mov dword [ebp - 0x50], 0
jmp 0x4099eb
mov eax, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 1
jge 0x409a07
push dword [ebp - 0x50]
lea ecx, [ebp - 0x214]
call fcn.0040bd0e
mov dword [eax], 0x22124f84
jmp 0x4099e4
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1ec]
push eax
lea eax, [ebp - 0x214]
push eax
call fcn.00409248
add esp, 0xc
lea ecx, [ebp - 0x214]
call fcn.0040bcf2
jmp 0x4099b7
cmp dword [ebp - 0x18], 0
je 0x409ad9
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x240], 0xa97f51ef
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x268], 0xffffffff
mov dword [ebp - 0x25c], 0xcaa5d732
mov dword [ebp - 0x224], 0x857b1a09
mov dword [ebp - 0x218], 0xd50c8576
mov dword [ebp - 0x80], 0
jmp 0x409a8e
mov eax, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 3
jge 0x409aa4
mov eax, dword [ebp - 0x80]
mov dword [ebp + eax*4 - 0x274], 0
jmp 0x409a87
mov dword [ebp - 0x18], 0
jmp 0x409ab4
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x409aca
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x274], 4
jmp 0x409aad
mov eax, dword [ebp - 0x150]
inc eax
mov dword [ebp - 0x150], eax
jmp 0x409aea
mov byte [ebp - 0x26], 0
movzx eax, byte [ebp - 0x26]
test eax, eax
je 0x409aea
call fcn.00409369
cmp dword [ebp - 0xa8], 3
jae 0x409b5f
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x184], eax
lea eax, [ebp - 0x234]
push eax
mov ecx, 0xac7e4c
call fcn.0040bdc9
push eax
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp - 0x23c]
push eax
mov ecx, 0xac7e4c
call fcn.0040bdd7
mov ecx, eax
call fcn.0040bdec
movzx eax, al
test eax, eax
je 0x409b5f
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x1c0], eax
lea eax, [ebp - 0x1c0]
push eax
mov ecx, 0xac7e4c
call fcn.0040bd66
push eax
mov ecx, dword [ebp + 8]
call fcn.0040bafd
mov eax, dword [ebp + 8]
jmp 0x40a73d
mov dword [ebp - 0x24], 0xfff8
mov dword [ebp - 0xd8], 0x28f9
mov dword [ebp - 0x158], 0xaa6408
cmp dword [ebp - 0xd8], 0x297b
jle 0x409c34
and dword [ebp - 0x60], 0
jmp 0x409b97
mov eax, dword [ebp - 0x60]
inc eax
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0x42c7
jge 0x409c34
and dword [ebp - 0x58], 0
jmp 0x409bb1
mov eax, dword [ebp - 0x58]
inc eax
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0x4690
jge 0x409c2f
and dword [ebp - 0x30], 0
jmp 0x409bc7
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0x5fb8
jge 0x409c2a
and dword [ebp - 0x88], 0
jmp 0x409be6
mov eax, dword [ebp - 0x88]
inc eax
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0x65a7
jge 0x409c28
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x30]
shl eax, cl
xor eax, dword [ebp - 0x60]
xor eax, dword [ebp - 0x88]
cdq
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x1ac], edx
push dword [ebp - 0x1ac]
push dword [ebp - 0x1b0]
mov ecx, 0xac6c78
call fcn.0040b8cb
jmp 0x409bd9
jmp 0x409bc0
jmp 0x409baa
jmp 0x409b90
mov dword [ebp - 0x194], 0
mov dword [ebp - 4], 2
cmp dword [ebp - 0xd8], 0x286f
jge 0x409c61
mov edx, dword [ebp - 0x158]
mov ecx, 0xac6c78
call fcn.0040e502
jmp 0x409c7d
or dword [ebp - 4], 0xffffffff
jmp 0x409c87
mov dword [ebp - 0x138], 0x9b857552
mov dword [ebp - 0x1cc], 0
mov dword [ebp - 0x16c], 0xffff
mov dword [ebp - 0x168], 0xffff
mov dword [ebp - 0x164], 0xffff
mov dword [ebp - 0x160], 0xffff
mov dword [ebp - 0x118], 0x3a18
mov dword [ebp - 0x1e8], 0xaa6478
cmp dword [ebp - 0x118], 0x3a60
jle 0x409d9e
push 0
push 0
call dword [0xaca334]
and dword [ebp - 0x34], 0
jmp 0x409cfe
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0x1a86
jge 0x409d9e
and dword [ebp - 0x70], 0
jmp 0x409d18
mov eax, dword [ebp - 0x70]
inc eax
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0x7c47
jge 0x409d99
and dword [ebp - 0x68], 0
jmp 0x409d2e
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x68], 0x187
jge 0x409d94
and dword [ebp - 0x98], 0
jmp 0x409d4d
mov eax, dword [ebp - 0x98]
inc eax
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0x9ef
jge 0x409d92
mov eax, dword [ebp - 0x68]
cdq
idiv dword [ebp - 0x98]
add edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x34]
mov ecx, edx
sar eax, cl
cdq
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1b8], edx
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
mov ecx, 0xac6c78
call fcn.0040b8cb
jmp 0x409d40
jmp 0x409d27
jmp 0x409d11
jmp 0x409cf7
mov dword [ebp - 0x128], 0xffffffff
mov dword [ebp - 4], 4
cmp dword [ebp - 0x118], 0x3955
jge 0x409dcb
mov edx, dword [ebp - 0x1e8]
mov ecx, 0xac6c78
call fcn.0040e502
jmp 0x409de7
or dword [ebp - 4], 0xffffffff
jmp 0x409df1
mov dword [ebp - 0xb0], 0xfffffffd
mov dword [ebp - 0x3c], 0
jmp 0x409e0b
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 2
jge 0x409e21
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax*4 - 0x254], 0x2ff18c9a
jmp 0x409e04
mov eax, 0xc516
test eax, eax
je 0x409f18
cmp dword [ebp - 0x24], 0
jne 0x409ea3
mov dword [ebp - 0x194], 0xffffffff
cmp dword [ebp - 0x24], 0
jne 0x409e56
mov eax, 0xa5f2
test eax, eax
jne 0x409e56
and dword [ebp - 0xe0], 0
jmp 0x409e60
mov dword [ebp - 0xe0], 1
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x138]
mov dword [ebp - 0xe8], eax
push 4
pop eax
shl eax, 0
mov ecx, dword [ebp - 0xe8]
mov dword [ebp + eax - 0x254], ecx
mov eax, dword [ebp - 0x24]
mov eax, 0x2268
test eax, eax
jne 0x409ea3
and dword [ebp - 0x120], 0
jmp 0x409ead
mov dword [ebp - 0x120], 1
imul eax, dword [ebp - 0x120], 0xfffd
cmp eax, dword [ebp - 0x24]
je 0x409ec8
mov dword [ebp - 0xf0], 1
jmp 0x409ecf
and dword [ebp - 0xf0], 0
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x1cc], eax
mov eax, 0x966c
test eax, eax
jne 0x409ef0
mov dword [ebp - 0x148], 1
jmp 0x409ef7
and dword [ebp - 0x148], 0
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x148], eax
jge 0x409f0e
mov dword [ebp - 0xf8], 1
jmp 0x409f15
and dword [ebp - 0xf8], 0
mov eax, dword [ebp - 0x24]
push 4
pop eax
shl eax, 0
mov ecx, 0xae2718b9
sub ecx, dword [ebp + eax - 0x16c]
mov dword [ebp - 0x128], ecx
mov eax, dword [ebp - 0x128]
push 4
pop ecx
shl ecx, 0
imul eax, dword [ebp + ecx - 0x16c]
push 4
pop ecx
imul ecx, ecx, 3
cmp eax, dword [ebp + ecx - 0x16c]
jge 0x409f5f
mov dword [ebp - 0x100], 1
jmp 0x409f66
and dword [ebp - 0x100], 0
push 4
pop eax
shl eax, 1
mov eax, dword [ebp + eax - 0x16c]
cmp dword [ebp - 0x100], eax
jge 0x409f86
mov dword [ebp - 0x140], 1
jmp 0x409f8d
and dword [ebp - 0x140], 0
mov eax, dword [ebp - 0xb0]
cmp dword [ebp - 0x140], eax
jne 0x409fa7
mov dword [ebp - 0xb8], 1
jmp 0x409fae
and dword [ebp - 0xb8], 0
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0xb8], eax
jle 0x409fc5
mov dword [ebp - 0xbc], 1
jmp 0x409fcc
and dword [ebp - 0xbc], 0
mov eax, dword [ebp - 0xb0]
cmp dword [ebp - 0xbc], eax
jg 0x409fe6
mov dword [ebp - 0xc4], 1
jmp 0x409fed
and dword [ebp - 0xc4], 0
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0x2bc]
push eax
call fcn.00401a9b
pop ecx
mov esi, eax
lea edi, [ebp - 0x280]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x280]
lea edi, [ebp - 0x2b0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x2c], 0x4e2db58
mov dword [ebp - 0x2c], 0xa
jmp 0x40a037
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x1c
jl 0x40a1e4
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x44], 0
jmp 0x40a058
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 3
jge 0x40a06e
mov eax, dword [ebp - 0x44]
mov dword [ebp + eax*4 - 0x28c], 1
jmp 0x40a051
cmp dword [ebp - 0x1c], 0
je 0x40a0ac
cmp dword [ebp - 0x1c], 0
je 0x40a0ac
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], eax
jg 0x40a08e
mov dword [ebp - 0xcc], 1
jmp 0x40a095
and dword [ebp - 0xcc], 0
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0xcc], eax
jg 0x40a0ac
mov dword [ebp - 0x19c], 1
jmp 0x40a0b3
and dword [ebp - 0x19c], 0
cmp dword [ebp - 0x2c], 0
je 0x40a0c5
mov dword [ebp - 0xd4], 1
jmp 0x40a0cc
and dword [ebp - 0xd4], 0
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0xd4], eax
jne 0x40a0e9
mov eax, 0x111d0188
test eax, eax
jne 0x40a0e9
and dword [ebp - 0xdc], 0
jmp 0x40a0f3
mov dword [ebp - 0xdc], 1
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0xdc], eax
jl 0x40a10a
mov dword [ebp - 0xe4], 1
jmp 0x40a111
and dword [ebp - 0xe4], 0
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0xe4]
push 4
pop ecx
shl ecx, 1
mov dword [ebp + ecx - 0x28c], eax
mov dword [ebp - 0x1c], 0x18
jmp 0x40a137
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 6
jge 0x40a1df
push 2
lea ecx, [ebp - 0x1e4]
call fcn.0040bc20
lea eax, [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.004093a8
pop ecx
pop ecx
mov byte [ebp - 0x25], 0
movzx eax, byte [ebp - 0x25]
test eax, eax
je 0x40a174
call fcn.004093ed
push 0
lea ecx, [ebp - 0x1e4]
call fcn.0040bd0e
mov dword [eax], 0xffffffe8
jmp 0x40a1ad
push 0
lea ecx, [ebp - 0x1e4]
call fcn.0040bd0e
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xec]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 0xec]
mov dword [ecx], eax
push 0
lea ecx, [ebp - 0x1e4]
call fcn.0040bd0e
cmp dword [eax], 0xfffffff3
jle 0x40a1cf
mov byte [ebp - 0x27], 0
lea eax, [ebp - 0x27]
push eax
call fcn.00409400
pop ecx
jmp 0x40a189
lea ecx, [ebp - 0x1e4]
call fcn.0040bcf2
jmp 0x40a130
jmp 0x40a030
mov ecx, dword [ebp + 0xc]
call fcn.0040832e
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x4c], 0
jmp 0x40a209
mov eax, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 2
jge 0x40a21f
mov eax, dword [ebp - 0x4c]
mov dword [ebp + eax*4 - 0xa0], 0xffffffff
jmp 0x40a202
mov dword [ebp - 0x14], 0xffffffe8
jmp 0x40a22f
mov eax, dword [ebp - 0x14]
dec eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffe5
jl 0x40a254
mov dword [ebp - 0x1f0], 0x73eb905d
cmp dword [ebp - 0x1f0], 0
je 0x40a24a
jmp 0x40a254
cmp dword [ebp - 0x14], 0
je 0x40a252
jmp 0x40a254
jmp 0x40a228
cmp dword [ebp - 0x14], 0
jne 0x40a3b6
cmp dword [ebp - 0x14], 0
jne 0x40a273
cmp dword [ebp - 0x14], 0
jne 0x40a273
and dword [ebp - 0xb4], 0
jmp 0x40a27d
mov dword [ebp - 0xb4], 1
cmp dword [ebp - 0xb4], 0x62a0
jge 0x40a295
mov dword [ebp - 0xfc], 1
jmp 0x40a29c
and dword [ebp - 0xfc], 0
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xfc], eax
jl 0x40a2ad
cmp dword [ebp - 0x14], 0
jne 0x40a2bc
cmp dword [ebp - 0x14], 0
jne 0x40a2bc
and dword [ebp - 0x104], 0
jmp 0x40a2c6
mov dword [ebp - 0x104], 1
cmp dword [ebp - 0x104], 0xfff6
jb 0x40a2de
mov dword [ebp - 0x1a8], 1
jmp 0x40a2e5
and dword [ebp - 0x1a8], 0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x264], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x228], eax
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
push 4
pop ecx
imul ecx, ecx, 0
add eax, dword [ebp + ecx - 0xa0]
push 4
pop ecx
shl ecx, 0
cmp eax, dword [ebp + ecx - 0xa0]
jg 0x40a335
push 4
pop eax
shl eax, 0
cmp dword [ebp + eax - 0xa0], 0
je 0x40a335
mov dword [ebp - 0x10c], 1
jmp 0x40a33c
and dword [ebp - 0x10c], 0
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0xa0]
cmp dword [ebp - 0x10c], eax
je 0x40a35d
mov dword [ebp - 0x114], 1
jmp 0x40a364
and dword [ebp - 0x114], 0
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x114], eax
jl 0x40a37b
mov dword [ebp - 0x11c], 1
jmp 0x40a382
and dword [ebp - 0x11c], 0
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x11c], eax
jle 0x40a399
mov dword [ebp - 0x124], 1
jmp 0x40a3a0
and dword [ebp - 0x124], 0
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x124]
sub ecx, dword [ebp + eax - 0xa0]
sub ecx, dword [ebp - 0x14]
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0xa0], 0
jne 0x40a3d4
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0xa0], 0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x244], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x230], eax
cmp dword [ebp - 0x14], 0
je 0x40a408
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0xa0], 0
je 0x40a408
mov dword [ebp - 0x12c], 1
jmp 0x40a40f
and dword [ebp - 0x12c], 0
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x2b0]
push eax
push dword [ebp - 0x15c]
push dword [ebp - 0xa8]
lea eax, [ebp - 0x2a4]
push eax
call fcn.004087da
add esp, 0x10
mov dword [ebp - 0x178], 0xfffffff7
mov dword [ebp - 0x24c], 0x3f467215
mov dword [ebp - 0xac], 0x1df8
mov dword [ebp - 0x180], 0x2fbb6bc3
mov dword [ebp - 0x134], 0x3e9d
mov dword [ebp - 0x170], 0xaa6508
cmp dword [ebp - 0x134], 0x4188
jle 0x40a4fa
and dword [ebp - 0x54], 0
jmp 0x40a48f
mov eax, dword [ebp - 0x54]
inc eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0x4b87
jge 0x40a4fa
and dword [ebp - 0x5c], 0
jmp 0x40a4a5
mov eax, dword [ebp - 0x5c]
inc eax
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 0x693c
jge 0x40a4f8
mov eax, dword [ebp - 0x54]
cdq
idiv dword [ebp - 0x5c]
mov eax, edx
cdq
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], edx
push dword [ebp - 0x1c4]
push dword [ebp - 0x1c8]
lea ecx, [ebp - 0x2ec]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.0040b8c0
push eax
call fcn.0049b6a7
pop ecx
lea ecx, [ebp - 0x2ec]
call fcn.0040b8b6
jmp 0x40a49e
jmp 0x40a488
mov dword [ebp - 0x64], 0
jmp 0x40a50a
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 2
jge 0x40a520
mov eax, dword [ebp - 0x64]
mov dword [ebp + eax*4 - 0x220], 0xffffffff
jmp 0x40a503
mov dword [ebp - 4], 6
cmp dword [ebp - 0x134], 0x3e3d
jge 0x40a53f
push dword [ebp - 0x170]
call fcn.0049b6a7
pop ecx
jmp 0x40a55b
or dword [ebp - 4], 0xffffffff
jmp 0x40a565
mov byte [ebp - 0x28], 0
lea eax, [ebp - 0x28]
push eax
call fcn.0040941e
pop ecx
cmp dword [ebp - 0x178], 0
je 0x40a59f
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xac]
dec ecx
mov dword [ebp - 0xac], ecx
test eax, eax
je 0x40a59f
mov dword [ebp - 0x13c], 1
jmp 0x40a5a6
and dword [ebp - 0x13c], 0
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x220]
cmp dword [ebp - 0x13c], eax
jl 0x40a5c7
mov dword [ebp - 0x144], 1
jmp 0x40a5ce
and dword [ebp - 0x144], 0
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0xa8], 3
jae 0x40a720
lea eax, [ebp - 0x2a4]
push eax
lea eax, [ebp + 0xc]
push eax
push 0xac7e4c
call fcn.00409441
add esp, 0xc
mov dword [ebp - 0x14c], 0x69ce
mov dword [ebp - 0x188], 0xaa6578
cmp dword [ebp - 0x14c], 0x6bb3
jle 0x40a6d7
and dword [ebp - 0x84], 0
jmp 0x40a639
mov eax, dword [ebp - 0x84]
inc eax
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0x25a8
jge 0x40a6cd
and dword [ebp - 0x6c], 0
jmp 0x40a656
mov eax, dword [ebp - 0x6c]
inc eax
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x6c], 0x7ce8
jge 0x40a6c8
and dword [ebp - 0x74], 0
jmp 0x40a66c
mov eax, dword [ebp - 0x74]
inc eax
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 0x21f1
jge 0x40a6c6
and dword [ebp - 0x7c], 0
jmp 0x40a682
mov eax, dword [ebp - 0x7c]
inc eax
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0x28ae
jge 0x40a6c4
mov eax, dword [ebp - 0x6c]
cdq
idiv dword [ebp - 0x74]
mov ecx, dword [ebp - 0x7c]
sar edx, cl
xor edx, dword [ebp - 0x84]
mov eax, edx
cdq
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1d0], edx
push dword [ebp - 0x1d0]
push dword [ebp - 0x1d4]
mov ecx, 0xac6c78
call fcn.0040b8cb
jmp 0x40a67b
jmp 0x40a665
jmp 0x40a64f
jmp 0x40a62c
push 0
push 0
call dword [0xaca318]
mov dword [ebp - 4], 8
cmp dword [ebp - 0x14c], 0x694e
jge 0x40a6fa
mov edx, dword [ebp - 0x188]
mov ecx, 0xac6c78
call fcn.0040e502
jmp 0x40a716
or dword [ebp - 4], 0xffffffff
jmp 0x40a720
lea eax, [ebp - 0x2a4]
push eax
mov ecx, dword [ebp + 8]
call fcn.0040bb34
lea ecx, [ebp - 0x2a4]
call fcn.0040bb8d
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret