Function at 0x4137da
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
mov eax, 0x4cb707
call fcn.004cb2b8
sub esp, 0x32c
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x40], 0xe00f
mov dword [ebp - 0x18], 0xfd1f2e96
movdqa xmm0, xmmword [0xad0300]
movdqu xmmword [ebp - 0x23c], xmm0
xor ebx, ebx
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0xec], ebx
mov dword [ebp - 0xe8], ebx
push dword [ebp + 8]
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x23c]
push eax
push ebx
lea ecx, [ebp - 0xf0]
call fcn.00418c33
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x40], 0xffff
mov eax, dword [ebp - 0x18]
imul eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
xor esi, esi
inc esi
cmp esi, eax
sbb edx, edx
inc edx
mov eax, dword [ebp - 0xf0]
mov dword [eax], edx
mov ecx, dword [ebp - 0x34]
sub ecx, edx
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp ecx, eax
setge dl
imul edx, dword [ebp - 0x40]
imul eax, edx, 0x7bc7
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], bl
je 0x4138a0
push 0x639
push ebx
call dword [0xae22f8]
lea ecx, [ebp - 0xf0]
call fcn.00416366
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x1c], 0xfffffff7
mov dword [ebp - 0x24], 0xffffffe6
push 2
pop edi
cmp dword [ebp - 0x24], 0xfffffff2
jl 0x4139b7
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 0x18], 0xe91b76e1
mov dword [ebp - 0x20], 0x18
jmp 0x4139a5
mov dword [ebp - 0x14], 0x13af72b5
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x28], 5
mov dword [ebp - 0x30], ebx
jmp 0x41390a
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x22c], 0xfc72fa5d
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 4
jl 0x4138f9
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x40], 0xc023f41d
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x24]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, ecx
setge dl
cmp edi, edx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x14]
sub eax, 0x5d36
imul ecx, eax
sub ecx, dword [ebp - 0x24]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0x22c
mov eax, dword [ebp - 0x220]
xor edx, edx
cmp ecx, eax
setl dl
cmp edx, dword [ebp - 0x24]
jne 0x41397c
cmp dword [ebp - 0x1c], ebx
mov eax, esi
jne 0x41397e
mov eax, ebx
mov ecx, dword [ebp - 0x24]
add ecx, eax
mov eax, dword [ebp - 0x224]
imul ecx, eax
cmp dword [ebp - 0x24], ecx
je 0x413998
cmp dword [ebp - 0x18], ebx
mov ecx, esi
jne 0x41399a
mov ecx, ebx
mov eax, dword [ebp - 0x20]
add eax, ecx
mov dword [ebp - 0x28], eax
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffffa
jle 0x4138e3
inc dword [ebp - 0x24]
jmp 0x4138bf
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, esi
setg cl
sub ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x24]
xor eax, eax
cmp ecx, 0x59a7
setl al
mov dword [ebp - 0x24], eax
mov eax, dword [0xae0498]
test al, 1
jne 0x413a62
or eax, esi
mov dword [0xae0498], eax
mov dword [0xae04c0], ebx
mov dword [0xae04c4], ebx
push ebx
push ebx
call fcn.00418464
mov dword [0xae04c0], eax
mov dword [0xae04c8], ebx
mov dword [0xae04d0], ebx
mov dword [0xae04dc], 0x3f800000
mov dword [ebp - 0xf8], eax
mov dword [0xae04cc], ebx
lea eax, [ebp - 0xf8]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x1f0]
push eax
mov ecx, 0xae04c8
call fcn.00418209
mov dword [0xae04d4], 7
mov dword [0xae04d8], 8
push 0x4cc4d5
call fcn.004b5e4d
pop ecx
imul eax, dword [ebp - 0x48], 0x2710
add eax, dword [ebp - 0x44]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x30], 0x8a61928c
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x18], 0x1dc9
cmp dword [ebp - 0x18], 0x2053
jle 0x413ad3
push 0x18b2
push ebx
push ebx
push ebx
call dword [0xae2334]
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x28], ebx
lea ecx, [ebx + edi]
mov eax, esi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xadf2f8
call fcn.00416069
inc ebx
cmp ebx, 0x6d95
jl 0x413a9e
inc edi
cmp edi, 0x7be1
push 0
pop ebx
jl 0x413a9b
inc esi
cmp esi, 0x5db1
jl 0x413a99
xor esi, esi
inc esi
mov dword [ebp - 0x30], 0xfffffff1
jmp 0x413ae9
mov dword [ebp - 0x40], 0x4822
dec dword [ebp - 0x40]
dec dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xffffffe8
jle 0x413adc
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x18], 0x1b4b
jge 0x413b0a
mov edx, 0xac1a08
mov ecx, 0xadf2f8
call fcn.00418565
or dword [ebp - 4], 0xffffffff
jmp 0x413b36
mov dword [ebp - 0x40], 0x3355
cmp dword [ebp - 0x40], 0x3553
jle 0x413b7f
mov edi, ebx
mov esi, ebx
lea eax, [esi + edi]
cdq
push edx
push eax
mov ecx, 0xadf2f8
call fcn.00416069
inc esi
cmp esi, 0x2083
jl 0x413b4a
inc edi
cmp edi, 0x1a56
jl 0x413b48
push 0x21e7
push 0x1934
call dword [0xae2108]
xor esi, esi
inc esi
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x413b9a
push ebx
push 0x13fb
push ebx
push 0x1759
call dword [0xae2074]
push 2
pop edi
mov dword [ebp - 4], edi
cmp dword [ebp - 0x40], 0x2fd2
jge 0x413bb8
mov edx, 0xac1a80
mov ecx, 0xadf2f8
call fcn.00418565
or dword [ebp - 4], 0xffffffff
jmp 0x413be4
lea eax, [ebp - 0x70]
push eax
call fcn.004163a8
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], 0xfffffff6
mov dword [ebp - 0x20], 0x3321
cmp dword [ebp - 0x20], 0x348c
jle 0x413c6d
mov eax, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x34], 0x6046
mov edi, ebx
mov esi, ebx
mov ebx, eax
mov ecx, edi
sar ebx, cl
mov eax, ebx
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xadf2f8
call fcn.00416069
inc esi
cmp esi, 0x5cf5
jl 0x413c25
inc edi
cmp edi, 0x314a
push 0
pop ebx
mov eax, dword [ebp - 0x18]
jl 0x413c1d
dec eax
mov dword [ebp - 0x18], eax
dec dword [ebp - 0x34]
jne 0x413c1b
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x1c6c
jl 0x413c11
xor esi, esi
inc esi
push 2
pop edi
mov dword [ebp - 0x30], 0xb35f1971
mov dword [ebp - 4], 4
cmp dword [ebp - 0x20], 0x3104
jge 0x413c93
mov edx, 0xac1af0
mov ecx, 0xadf2f8
call fcn.00418565
or dword [ebp - 4], 0xffffffff
jmp 0x413cbf
mov dword [ebp - 0x14], ebx
jmp 0x413d6c
push esi
lea ecx, [ebp - 0x16c]
call fcn.00416294
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x38], 0xfffffffb
mov dword [ebp - 0x24], ebx
jmp 0x413cf9
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x16c]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x413ce9
mov dword [ebp - 0x24], ebx
jmp 0x413d14
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x288], 0x4d1454bc
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x413d03
mov dword [ebp - 0x24], ebx
jmp 0x413d2c
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x2a0], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x413d1f
mov dword [ebp - 0x2a0], esi
mov eax, dword [ebp - 0x16c]
xor ecx, ecx
cmp dword [eax], esi
setne cl
add ecx, dword [eax]
sub ecx, dword [ebp - 0x14]
sub ecx, 0xc712
sub ecx, dword [ebp - 0x280]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x16c]
call fcn.00416366
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1a
jl 0x413cc7
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0x16
je 0x413de6
push 3
pop ecx
mov dword [ebp - 0x1c], ebx
jmp 0x413dd7
mov dword [ebp - 0x30], ebx
jmp 0x413d9d
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x1a8], 0xffff
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], ecx
jl 0x413d8c
dec dword [ebp - 0x1a8]
mov dword [ebp - 0x30], ebx
jmp 0x413dce
mov dword [ebp - 0x20], 0xc7a88ff7
mov dword [ebp - 0x20], ebx
jmp 0x413dc6
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1a8], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x413db9
dec dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xfffffff8
jl 0x413dad
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffff9
jle 0x413d87
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x16
jne 0x413d82
cmp dword [ebp - 0x40], 0
je 0x413ee4
mov dword [ebp - 0x14], 0x8ef
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x18], 0x3735b263
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x30], ebx
jmp 0x413e22
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x100], 0x8c55
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edi
jl 0x413e11
cmp dword [ebp - 0x18], ebx
mov edx, ebx
je 0x413e30
mov edx, esi
mov eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
neg eax
push 0xfffffffffffffff7
pop ecx
cmp ecx, eax
sbb eax, eax
neg eax
xor ecx, ecx
cmp eax, edx
setg cl
xor eax, eax
cmp ecx, 0xffffffff
setl al
add eax, 0x7f6c
je 0x413e5f
cmp dword [ebp - 0x14], ebx
mov edx, esi
jne 0x413e61
mov edx, ebx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, edx
setl cl
sub ecx, dword [ebp - 0x14]
je 0x413e7d
cmp dword [ebp - 0x14], ebx
mov edx, esi
jne 0x413e7f
mov edx, ebx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
sete cl
neg ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x1c], ebx
jl 0x413ed6
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x100]
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x100], ecx
mov dword [ebp - 0x20], ebx
jmp 0x413ecb
mov dword [ebp - 0x14], ebx
jmp 0x413ec3
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x100], ebx
jne 0x413ec8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jle 0x413eb4
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff0
jl 0x413eaf
dec dword [ebp - 0x1c]
jns 0x413e96
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0xb0], eax
jmp 0x415fe0
push edi
lea ecx, [ebp - 0x13c]
call fcn.00416294
mov dword [ebp - 0x14], 0x9bdba76a
mov dword [ebp - 0x34], 0x1814
cmp dword [ebp - 0x34], 0x1a8a
jle 0x413f59
mov ecx, ebx
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov eax, edi
and eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0x2c8]
call fcn.0040191d
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x413f2a
mov eax, dword [eax]
push eax
call fcn.004b5e77
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x2c8]
call fcn.00416734
inc edi
cmp edi, 0x466b
mov ecx, dword [ebp - 0x18]
jl 0x413f0e
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 0x4eb2
jl 0x413f0c
push 2
pop edi
push esi
lea ecx, [ebp - 0x190]
call fcn.00416294
mov dword [ebp - 4], 6
cmp dword [ebp - 0x34], 0x163a
jge 0x413f80
push 0xac1b5c
call fcn.004b5e77
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x413fac
mov dword [ebp - 0x14], ebx
jmp 0x413fc0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x13c]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x413fb1
mov dword [ebp - 0x14], ebx
jmp 0x413fdd
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x190]
mov dword [eax + ecx*4], 0xa66fa4bc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x413fca
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0x14], ebx
jl 0x414088
mov dword [ebp - 0x18], 0xfffffff9
mov dword [ebp - 0x34], 0xee507704
mov dword [ebp - 0x28], 0x245c2f1f
mov eax, dword [ebp - 0x14]
dec eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, 0xc105a83e
setl cl
mov eax, dword [ebp - 0x14]
sub eax, ecx
neg eax
sbb eax, eax
inc eax
xor edx, edx
cmp eax, 0x6d6092f6
setge dl
sub edx, dword [ebp - 0x14]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, dword [ebp - 0x34]
jge 0x414051
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x13c]
mov eax, dword [eax + ecx*4]
mov dword [edx + esi*4], eax
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp dword [edx + esi*4], eax
setne cl
mov eax, dword [ebp - 0x190]
mov dword [eax], ecx
dec dword [ebp - 0x14]
jns 0x413fee
xor esi, esi
inc esi
lea ecx, [ebp - 0x190]
call fcn.00416366
lea ecx, [ebp - 0x13c]
call fcn.00416366
mov eax, dword [0xae0498]
test al, 2
jne 0x414122
or eax, edi
mov dword [0xae0498], eax
mov dword [0xae04e0], ebx
mov dword [0xae04e4], ebx
push ebx
push ebx
call fcn.00418464
mov dword [0xae04e0], eax
mov dword [0xae04e8], ebx
mov dword [0xae04f0], ebx
mov dword [0xae04fc], 0x3f800000
mov dword [ebp - 0x104], eax
mov dword [0xae04ec], ebx
lea eax, [ebp - 0x104]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x1e0]
push eax
mov ecx, 0xae04e8
call fcn.00418209
mov dword [0xae04f4], 7
mov dword [0xae04f8], 8
push 0x4cc4d0
call fcn.004b5e4d
pop ecx
push 3
lea ecx, [ebp - 0x9c]
call fcn.00416294
push 3
lea ecx, [ebp - 0x160]
call fcn.00416294
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x3c], 0x2b5bddd
mov dword [ebp - 0x14], ebx
push 3
pop edx
jmp 0x414165
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x9c]
mov dword [eax + ecx*4], 0xf5540d7f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x414152
mov dword [ebp - 0x14], ebx
jmp 0x41417e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x160]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x41416f
mov eax, dword [ebp - 0x9c]
mov dword [eax], 0x18
cmp dword [eax], 0xfffffff8
je 0x414307
mov dword [ebp - 0x18], 0x5fb9
cmp dword [ebp - 0x18], 0x6221
jle 0x4141d5
mov edi, ebx
mov esi, ebx
mov eax, esi
or eax, edi
cdq
push edx
push eax
mov ecx, 0xadf2f8
call fcn.00416069
inc esi
cmp esi, 0x7bb8
jl 0x4141ac
inc edi
cmp edi, 0x1217
jl 0x4141aa
xor esi, esi
inc esi
push 2
pop edi
mov dword [ebp - 0x1c], 0x6f08
mov dword [ebp - 4], 8
cmp dword [ebp - 0x18], 0x5df2
jge 0x4141fb
mov edx, 0xac1b88
mov ecx, 0xadf2f8
call fcn.00418565
or dword [ebp - 4], 0xffffffff
jmp 0x414227
mov dword [ebp - 0x18], 0xfffffff8
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x34], 0x3de76903
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x30], ebx
jmp 0x414251
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x108], 0x6ee3e4f6
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], esi
jl 0x414240
mov eax, dword [ebp - 0x160]
mov dword [eax + 8], 0xb79dc866
mov dword [ebp - 0x18], 0xb79dc866
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x3c]
add ecx, 4
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x9c]
mov edx, dword [eax]
imul edx, ecx
mov eax, dword [ebp - 0x1c]
sub edx, eax
sub edx, dword [ebp - 0x1c]
neg edx
sbb edx, edx
inc edx
xor ecx, ecx
cmp edx, esi
setge cl
mov eax, dword [ebp - 0x1c]
sub eax, ecx
cmp eax, 0x449e
jl 0x4142b3
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax + 4]
sub eax, 0xfffb
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
imul eax, ecx, 0x4716
test eax, eax
je 0x4142e8
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 8], ebx
mov eax, esi
jne 0x4142ea
mov eax, ebx
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x3c], 0xace2be47
mov eax, dword [ebp - 0x9c]
dec dword [eax]
jmp 0x41418f
lea ecx, [ebp - 0x160]
call fcn.00416366
lea ecx, [ebp - 0x9c]
call fcn.00416366
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x90], xmm0
lea eax, [ebp - 0x48]
push eax
call fcn.0041640a
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], 0x643c
push edi
lea ecx, [ebp - 0x184]
call fcn.00416294
mov dword [ebp - 0x20], ebx
jmp 0x414361
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x184]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x41434e
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x184]
mov dword [eax + 4], ecx
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x41438c
push 0x1a62
push 0x1673
push ebx
call dword [0xae24bc]
lea ecx, [ebp - 0x184]
call fcn.00416366
mov al, byte [ebp + 0xc]
test al, al
jne 0x4143a8
cmp dword [ebp - 0x30], 0
jne 0x4149af
lea ecx, [ebp - 0x338]
push ecx
mov dl, al
mov ecx, dword [ebp - 0x48]
call fcn.00401994
pop ecx
mov esi, eax
lea edi, [ebp - 0x90]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x1c], 0x828451d7
mov dword [ebp - 0x14], 0x7d413053
mov dword [ebp - 0x18], 0x5a27557b
mov dword [ebp - 0x28], 0x871d0c0b
mov dword [ebp - 0x34], 0x12908cda
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x20], ebx
jmp 0x414410
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x118], 0xaabecba2
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x4143ff
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x110]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10c]
xor edx, edx
cmp ecx, eax
setne dl
cmp edx, 0xd926128f
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x110]
dec eax
add eax, ecx
mov ecx, dword [ebp - 0x1c]
add ecx, eax
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
sub eax, 0x75623758
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x118]
cmp dword [ebp - 0x1c], 0xf82966b9
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp ecx, eax
setle dl
sub edx, dword [ebp - 0x1c]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x28], edx
je 0x41448a
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x114]
xor ecx, ecx
xor esi, esi
inc esi
cmp eax, esi
setl cl
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x34]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp eax, esi
setge dl
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, eax
setne cl
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff9
add ecx, eax
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x114]
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [ebp - 0x28], ecx
cmp byte [ebp + 0xc], 0
je 0x4149af
cmp dword [ebp - 0x88], 0
je 0x4149af
mov dword [ebp - 0x24], 7
mov dword [ebp - 0x20], 0xd59e57ad
mov dword [ebp - 0x1c], 5
mov dword [ebp - 0x14], 0xf7935db5
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x20], 0xffffffe7
push 3
cmp dword [ebp - 0x20], 0xffffffed
jne 0x4147fc
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x1c], ebx
pop ecx
jmp 0x41454b
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x60], 0xfffffff9
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jl 0x41453d
mov dword [ebp - 0x24], 0x12
cmp dword [ebp - 0x24], 0x1c
jle 0x414611
push 2
pop edi
mov dword [ebp - 0x14], ebx
jmp 0x41457a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1d4], 0xcadfb1af
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x414569
mov dword [ebp - 0x14], ebx
jmp 0x414595
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x278], 8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x414584
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp eax, ecx
setle dl
imul eax, edx, 0xfffffffb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1d0]
push 0xfffffffffffffff8
pop ecx
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x274], ecx
mov eax, dword [ebp - 0x24]
sub ecx, eax
cmp ecx, 0xffff
jbe 0x4145e3
cmp dword [ebp - 0x24], ebx
jne 0x414611
jmp 0x414601
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x414601
push 0xd8c
push ebx
push ebx
push 0x23
push ebx
push 0x251d
call dword [0xae2084]
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x1c
push 3
pop ecx
jg 0x414564
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 0xfffffffe
jl 0x41471f
mov dword [ebp - 0x34], 0x2a73
cmp dword [ebp - 0x34], 0x2aab
jle 0x41466c
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x28], ebx
mov eax, edi
cdq
idiv ebx
xor edx, esi
mov eax, edx
cdq
push edx
push eax
mov ecx, 0xadf2f8
call fcn.00416069
inc ebx
cmp ebx, 0x2b4e
jl 0x414635
inc edi
cmp edi, 0x6cf5
push 0
pop ebx
jl 0x414632
inc esi
cmp esi, 0x6dd5
jl 0x414630
xor esi, esi
inc esi
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x34], 0x296f
jge 0x41468e
mov edx, 0xac1bb8
mov ecx, 0xadf2f8
call fcn.00418565
or dword [ebp - 4], 0xffffffff
push 2
pop edi
push 0xfffffffffffffff7
pop eax
jmp 0x4146c3
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
je 0x414727
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp eax, ecx
setle dl
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
cmp edx, eax
setg cl
lea edx, [ecx - 0x6b2da8f3]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x24]
sub ecx, eax
xor eax, eax
cmp ecx, edx
setl al
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, dword [ebp - 0x28]
setle cl
add ecx, 0x32384b6d
je 0x414727
mov dword [ebp - 0x58], esi
cmp dword [ebp - 0x24], ebx
je 0x4147f1
inc dword [ebp - 0x20]
jmp 0x414525
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x34], 0xe9505c00
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x28], 0x3a780915
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x14], ebx
jl 0x4147f1
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0x58]
neg eax
sbb eax, eax
inc eax
mov ecx, dword [ebp - 0x3c]
imul ecx, eax
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setl dl
xor eax, eax
cmp edx, 3
setle al
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
neg eax
sbb eax, eax
inc eax
cmp dword [ebp - 0x24], eax
je 0x414787
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x60]
cmp dword [ebp - 0x24], ebx
je 0x4147a5
cmp dword [ebp - 0x3c], ebx
jne 0x4147a7
mov esi, ebx
mov dword [ebp - 0x60], esi
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x60]
mov dword [ebp - 0x28], eax
mov esi, dword [ebp - 0x1c]
neg esi
sbb esi, esi
inc esi
mov eax, dword [ebp - 0x14]
mov ecx, 0xcfccff5f
sub ecx, eax
sub esi, ecx
neg esi
sbb esi, esi
inc esi
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp ecx, eax
setle dl
sub esi, edx
sub esi, dword [ebp - 0x38]
add esi, dword [ebp - 0x1c]
mov dword [ebp - 0x28], esi
dec dword [ebp - 0x14]
push 1
pop esi
jns 0x41474b
dec dword [ebp - 0x1c]
xor esi, esi
inc esi
jmp 0x414614
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x1c], 0xaa32b1ce
mov dword [ebp - 0x38], ebx
lea ecx, [ebp - 0x1fc]
call fcn.00416294
mov dword [ebp - 0x14], ebx
push 2
pop edi
jmp 0x414836
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1cc], 0x69f7fd1e
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x414825
mov dword [ebp - 0x14], ebx
push 3
pop edx
jmp 0x414856
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1fc]
mov dword [eax + ecx*4], 0x689a5a40
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x414843
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x1c], ebx
jl 0x414998
mov dword [ebp - 0x38], 0xaa29c146
mov dword [ebp - 0x38], 0xf9acf257
mov dword [ebp - 0x38], 0x4c865b49
mov dword [ebp - 0x38], 0x69b2e414
push esi
lea ecx, [ebp - 0x19c]
call fcn.00416294
push edi
lea ecx, [ebp - 0x124]
call fcn.00416294
mov dword [ebp - 0x14], ebx
jmp 0x4148bf
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x19c]
mov dword [eax + ecx*4], 0x8807383c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x4148ac
mov dword [ebp - 0x14], ebx
jmp 0x4148dc
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x124]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4148c9
mov dword [ebp - 0x28], 0x6c6f
cmp dword [ebp - 0x28], 0x6e1d
jle 0x41491e
mov edi, ebx
mov esi, ebx
mov eax, esi
or eax, edi
cdq
push edx
push eax
mov ecx, 0xadf2f8
call fcn.00416069
inc esi
cmp esi, 0x29f5
jl 0x4148f5
inc edi
cmp edi, 0x39e9
jl 0x4148f3
xor esi, esi
inc esi
push 2
pop edi
mov eax, dword [ebp - 0x124]
dec dword [eax + 4]
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x28], 0x6b1c
jge 0x414946
mov edx, 0xac1bd8
mov ecx, 0xadf2f8
call fcn.00418565
or dword [ebp - 4], 0xffffffff
jmp 0x414972
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x124]
cmp dword [ebp + eax*4 - 0x1cc], ebx
je 0x414a45
call fcn.00416366
lea ecx, [ebp - 0x19c]
call fcn.00416366
lea ecx, [ebp - 0x1fc]
call fcn.00416366
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x28], 0x5a38
cmp dword [ebp - 0x28], 0x5add
jle 0x414a24
mov edx, ebx
mov dword [ebp - 0x18], ebx
mov ecx, ebx
mov dword [ebp - 0x34], ebx
mov edi, ebx
mov eax, edi
and eax, ecx
xor eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x2f8]
call fcn.0040191d
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4149e9
mov eax, dword [eax]
push eax
call fcn.004b5e77
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x2f8]
call fcn.00416734
inc edi
cmp edi, 0x79ad
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x18]
jl 0x4149cb
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 0xbd0
jl 0x4149c9
inc edx
mov dword [ebp - 0x18], edx
cmp edx, 0x6235
jl 0x4149c4
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x28], 0x5a01
jge 0x414a3f
push 0xac1c50
call fcn.004b5e77
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x414a80
call fcn.00416366
lea ecx, [ebp - 0x19c]
call fcn.00416366
dec dword [ebp - 0x1c]
jmp 0x41486a
push 2
pop edi
mov dword [ebp - 0x14], 0x571177e8
mov dword [ebp - 0x20], 0xa4abff1e
mov dword [ebp - 0x20], ebx
jmp 0x414aa7
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xa4], 0xa5616d21
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x414a96
mov dword [ebp - 0x14], 0xffffffff
jmp 0x414c61
mov dword [ebp - 0x24], 0x31e4
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0x88a01932
setne cl
xor eax, eax
cmp ecx, 0xfffffffd
setle al
cmp eax, 0xfffb
jbe 0x414ae5
cmp dword [ebp - 0x24], ebx
mov eax, ebx
je 0x414ae7
mov eax, esi
mov ecx, 0xfbf68593
cmp ecx, eax
sbb eax, eax
neg eax
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp dword [ebp - 0x38], eax
setne cl
sub ecx, 0x3eaa3e8f
jne 0x414b28
cmp dword [ebp - 0x14], ebx
mov ecx, ebx
je 0x414b2a
mov ecx, esi
mov eax, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0xa0], ecx
xor eax, eax
cmp ecx, 0xd6c3
sete al
imul ecx, eax, 0x1d4b
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp ecx, eax
setg dl
inc edx
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x14], esi
jge 0x414bb4
push edi
lea ecx, [ebp - 0x154]
call fcn.00416294
mov dword [ebp - 0x38], 0xfb656d4c
mov dword [ebp - 0x20], ebx
jmp 0x414b93
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x154]
mov dword [eax + ecx*4], 0xfff7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x414b80
mov eax, dword [ebp - 0x154]
mov eax, dword [eax + 4]
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x154]
call fcn.00416366
jmp 0x414c5e
mov dword [ebp - 0x20], 3
jmp 0x414c55
cmp dword [ebp - 0xa0], ebx
mov dword [ebp - 0x24], ebx
je 0x414c43
jmp 0x414bda
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xa4], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x414bcd
jmp 0x414c48
push esi
lea ecx, [ebp - 0x130]
call fcn.00416294
mov dword [ebp - 0x1c], ebx
jmp 0x414c01
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x130]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x414bf2
mov eax, dword [ebp - 0x130]
mov dword [eax], ebx
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x414c29
push ebx
push 0x178
push ebx
push 0x26c9
call dword [0xae2114]
mov eax, dword [ebp - 0x130]
inc dword [eax]
cmp dword [eax], esi
jle 0x414c0e
lea ecx, [ebp - 0x130]
call fcn.00416366
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jle 0x414be1
mov dword [ebp - 0xa0], 0x29794902
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jg 0x414bc0
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffff9
jne 0x414ab8
cmp dword [ebp - 0x30], 0
jne 0x4157d3
cmp dword [ebp - 0x90], 0
jle 0x4157d3
mov dword [ebp - 0x14], 0x477862f
mov dword [ebp - 0x20], ebx
jmp 0x414c9f
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xf4], 5
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x414c8e
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x414cb6
push ebx
push ebx
push ebx
call dword [0xae2358]
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0xffffffea
je 0x414eab
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x1c], ebx
jmp 0x414cdf
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x50], 0x98070ade
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x414cd1
mov dword [ebp - 0x4c], 0xffffffef
jmp 0x414d61
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x3c], 0x450bb101
cmp dword [ebp - 0x20], ebx
jne 0x414d08
mov eax, dword [ebp - 0x14]
add eax, 0xcdf9
mov edx, ebx
je 0x414d0a
mov edx, esi
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x4c]
sub ecx, eax
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setl cl
imul ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x414d2a
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0xf4], 0xfff9
mov dword [ebp - 0x3c], 0xfff9
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, 0xfffffff7
setg cl
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setne dl
sub edx, 0xb1466ac3
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x38], edx
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], edi
jg 0x414ced
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 0x1d
jg 0x414ea3
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x414d89
push 0x4ef
push ebx
push ebx
call dword [0xae2368]
mov byte [ebp - 0x29], bl
mov dword [ebp - 0x34], 0x6e4d
cmp dword [ebp - 0x34], 0x721c
jle 0x414e47
push ebx
push 0x160f
push 0x14b0
push 0x209a
call dword [0xae211c]
mov ecx, ebx
mov dword [ebp - 0x18], ebx
mov eax, ebx
mov dword [ebp - 0x3c], ebx
mov edi, ebx
mov edx, ecx
mov ecx, eax
shl edx, cl
mov dword [ebp - 0x38], edx
mov edx, ebx
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x38]
mov ecx, edi
shl eax, cl
mov dword [ebp - 0x1c], eax
or eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x2e0]
call fcn.0040191d
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x414df4
mov eax, dword [eax]
push eax
call fcn.004b5e77
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x2e0]
call fcn.00416734
mov edx, dword [ebp - 0x28]
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 0x6ac0
mov eax, dword [ebp - 0x1c]
jl 0x414dda
inc edi
cmp edi, 0x6062
jl 0x414dcb
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
cmp eax, 0x18d7
mov ecx, dword [ebp - 0x18]
jl 0x414dc0
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 0x5147
jl 0x414dbb
push 2
pop edi
cmp byte [ebp - 0x29], 0
je 0x414e54
push ebx
call dword [0xae230c]
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x34], 0x6aa1
jge 0x414e6f
push 0xac1ce4
call fcn.004b5e77
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x414e9b
inc dword [ebp - 0x20]
jmp 0x414d69
dec dword [ebp - 0x14]
jmp 0x414cb9
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], 0x5121ac48
mov dword [ebp - 0x20], ebx
push 3
pop ecx
jmp 0x414ece
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1ec], 0xeb32a831
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x414ebd
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 6
jbe 0x414ee9
cmp dword [ebp - 0x14], ebx
mov edx, esi
jne 0x414eeb
mov edx, ebx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setne cl
mov eax, 0x9d94b4b1
cmp eax, ecx
sbb eax, eax
neg eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1c], ebx
jmp 0x414f6e
mov dword [ebp - 0x18], 0x7f39cee2
mov dword [ebp - 0x28], 0xf0ef2f37
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x1ec], ebx
je 0x414f2c
cmp dword [ebp - 0x1e4], ebx
mov edi, esi
jne 0x414f2e
mov edi, ebx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
sub edx, eax
neg edx
sbb edx, edx
add edx, 2
neg edx
sbb edx, edx
inc edx
xor ecx, ecx
cmp edi, edx
sete cl
xor eax, eax
cmp ecx, esi
setg al
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], esi
inc dword [ebp - 0x1c]
push 2
pop edi
cmp dword [ebp - 0x1c], edi
jle 0x414f08
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0x34], 6
mov dword [ebp - 0x28], 8
mov dword [ebp - 0x20], ebx
push 3
pop ecx
jmp 0x414f9e
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x6c], 4
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x414f90
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 0x1a
jge 0x415091
push 3
pop edi
mov dword [ebp - 0x28], 4
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], 0xfffffffc
cmp dword [ebp - 0x24], ebx
jne 0x414fcf
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], 0x715ee56e
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, esi
setge cl
inc ecx
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setge cl
mov eax, 0xc23cea2f
cmp eax, ecx
sbb eax, eax
neg eax
imul eax, dword [ebp - 0x20]
xor ecx, ecx
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
setns cl
push 5
pop eax
cmp eax, ecx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 0x8182
jle 0x415038
cmp dword [ebp - 0x24], ebx
mov eax, ebx
je 0x41503a
mov eax, esi
xor ecx, ecx
cmp eax, 0xe055
setg cl
xor eax, eax
cmp ecx, 0x9e03d258
setl al
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x18], ebx
jg 0x41505a
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
neg eax
sub eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
cmp edi, eax
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x1a
jl 0x414fb3
push 2
pop edi
mov dword [ebp - 0x24], ebx
jmp 0x415132
mov dword [ebp - 0x18], 0x5b78c6ae
mov dword [ebp - 0x28], 0x6352b728
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0x6c], ebx
jne 0x41513b
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0x6c], ebx
je 0x4150e1
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x6c]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x6a10b913
setne cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x34]
mov edx, esi
jne 0x4150e3
mov edx, ebx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x6c]
xor ecx, ecx
cmp edx, eax
setl cl
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0x6c], ecx
je 0x415101
cmp dword [ebp - 0x18], ebx
mov eax, ebx
je 0x415103
mov eax, esi
xor edx, edx
cmp eax, 0xfffffffe
setne dl
inc edx
imul edx, dword [ebp - 0x18]
dec edx
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + eax*4 - 0x6c]
imul ecx, edx
mov eax, dword [ebp - 0x24]
add ecx, dword [ebp + eax*4 - 0x6c]
imul ecx, dword [ebp - 0x18]
mov dword [ebp - 0x68], ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jle 0x415099
mov dword [ebp - 0x18], 0x5464b5f5
mov dword [ebp - 0x38], 0xfffc
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x21c], 0xfffffff9
mov dword [ebp - 0x218], 0xfffffff9
mov dword [ebp - 0x214], 0xfffffff9
mov dword [ebp - 0x210], 0xfffffff9
cmp dword [ebp - 0x18], ebx
je 0x4151a0
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x41532f
push 0xbee
push 0x7be
push ebx
call dword [0xae24e0]
jmp 0x41532f
mov dword [ebp - 0x34], 0xfffffff6
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x38], 0xfffffffc
mov dword [ebp - 0x38], 0xe7721ca7
mov dword [ebp - 0x38], 0x2e5769e8
mov dword [ebp - 0x38], 0x3d4965da
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x20], ebx
jmp 0x4151e2
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x200], 0x4f5c6f0d
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x4151d1
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, 3
setle cl
cmp ecx, 0x817d1dc6
jne 0x415240
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], 0xfff7
mov dword [ebp - 0x28], 0x3421ad7b
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
dec eax
imul eax, dword [ebp - 0x3c]
test eax, eax
je 0x415230
cmp dword [ebp - 0x3c], ebx
mov eax, esi
jne 0x415232
mov eax, ebx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], eax
jmp 0x41532f
mov dword [ebp - 0x38], 0x1d5f49dc
mov dword [ebp - 0x38], 0x46bac609
mov dword [ebp - 0x28], 0x2bcf
cmp dword [ebp - 0x28], 0x2f92
jle 0x4152b6
mov eax, ebx
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x328]
call fcn.0040191d
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x415281
mov eax, dword [eax]
push eax
call fcn.004b5e77
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x328]
call fcn.00416734
inc edi
cmp edi, 0x41bf
mov eax, dword [ebp - 0x18]
jl 0x415265
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x387d
jl 0x415263
push ebx
call dword [0xae2068]
push 2
pop edi
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x28], 0x2ad4
jge 0x4152d1
push 0xac1d44
call fcn.004b5e77
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4152fd
mov dword [ebp - 0x14], ebx
jmp 0x41530f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x290], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x415302
mov dword [ebp - 0x14], ebx
jmp 0x415327
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x74], 0xac57
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x415319
inc dword [ebp - 0x74]
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x1c], 3
push esi
lea ecx, [ebp - 0x148]
call fcn.00416294
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x18], 0xff609d70
mov dword [ebp - 0x38], 0xa3de81d5
mov dword [ebp - 0x3c], 0xfff6
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x14], ebx
jmp 0x415376
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x54], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x41536c
mov dword [ebp - 0x14], ebx
jmp 0x415393
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x148]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x415380
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x148]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setge dl
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
sub edx, eax
sub edx, dword [ebp - 0x18]
add edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setg cl
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setle dl
add edx, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, 0xfffffff9
setle cl
mov eax, dword [ebp - 0x28]
sub eax, ecx
xor ecx, ecx
cmp eax, 0x49bc00ea
setg cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp eax, ecx
setl dl
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x18], 0xcd538770
dec dword [ebp - 0x3c]
mov eax, dword [ebp - 0x54]
xor ecx, ecx
test eax, eax
setg cl
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x18]
sub edx, dword [ebp - 0x18]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp dword [ebp - 0x38], eax
setle cl
sub ecx, edx
je 0x415455
mov eax, dword [ebp - 0x148]
cmp dword [eax], ebx
mov eax, esi
jne 0x415457
mov eax, ebx
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x148]
call fcn.00416366
cmp dword [ebp - 0x8c], 0
je 0x4157d3
cmp dword [ebp - 0x90], 0
je 0x4157d3
mov dword [ebp - 0x34], 0x7206
cmp dword [ebp - 0x34], 0x7597
jle 0x4154fc
mov dword [ebp - 0x18], ebx
mov esi, ebx
mov dword [ebp - 0x3c], ebx
mov edi, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x38], ebx
mov eax, esi
cdq
idiv edi
mov ebx, edx
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x18]
mov eax, ebx
mov ecx, esi
shl eax, cl
or eax, edi
cdq
push edx
push eax
mov ecx, 0xadf2f8
call fcn.00416069
inc esi
cmp esi, 0x6991
jl 0x4154ac
mov edi, dword [ebp - 0x28]
inc edi
mov dword [ebp - 0x28], edi
cmp edi, 0x5af7
push 0
pop ebx
mov esi, dword [ebp - 0x3c]
jl 0x41549c
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x34], 0x708a
jge 0x41551b
mov edx, 0xac1d90
mov ecx, 0xadf2f8
call fcn.00418565
or dword [ebp - 4], 0xffffffff
jmp 0x415544
lea ecx, [ebp - 0x90]
call fcn.0040d8f8
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0x871c7bf0
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x28], 0x39ecf4a
mov dword [ebp - 0x28], 0xfffffffd
mov dword [ebp - 0x3c], 0x80f885bd
mov dword [ebp - 0x28], 0x34a938f7
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x38], 0x1d976d99
mov dword [ebp - 0x20], ebx
push 2
pop edi
jmp 0x415826
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1dc], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x415819
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setne dl
mov dword [ebp - 0x1dc], edx
mov dword [ebp - 0x18], 0xf90edcad
mov dword [ebp - 0x28], ebx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0xb39e
setge cl
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0xa32a
setg cl
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp eax, ecx
setne dl
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setle dl
imul eax, edx, 0x4868
xor ecx, ecx
cmp dword [ebp - 0x38], eax
setne cl
sub ecx, dword [ebp - 0x14]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
inc eax
imul ecx, eax, 0xfa02
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp eax, ecx
setge dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [ebp - 0x34]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x40], 0
jne 0x415e18
cmp dword [ebp - 0x30], 0
je 0x415e18
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], 0xf3403ca9
mov dword [ebp - 0x28], 0x22e7c650
mov dword [ebp - 0x40], 0x63446b7
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x38], 0xf9ee
mov dword [ebp - 0x3c], 3
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x1c], ebx
je 0x415b29
mov dword [ebp - 0x34], 0x8cef
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
jmp 0x41594b
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x2b0], 0xfffffff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x41593a
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 0x1e
jg 0x415bae
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x28], 0x488f4f3
mov dword [ebp - 0x38], ebx
or eax, 0xffffffff
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x38], 0x41bbbbfe
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x38], 0x805e5316
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], eax
jg 0x415a50
push esi
lea ecx, [ebp - 0xe4]
call fcn.00416294
mov dword [ebp - 0x38], 0xfffffff7
mov dword [ebp - 0x28], 0xfffffffc
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x14], ebx
jmp 0x4159cd
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xe4]
mov dword [eax + ecx*4], 0x9a2f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x4159ba
mov eax, dword [ebp - 0xe4]
cmp dword [eax], ebx
je 0x4159e8
dec dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], 0xfff6
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, ecx
setge dl
mov dword [ebp - 0x2ac], edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, 0x6286
setne cl
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0xe4]
cmp dword [ebp - 0x3c], ebx
jne 0x415a4b
call fcn.00416366
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffff
jle 0x415998
jmp 0x415a50
call fcn.00416366
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 0x13
jg 0x415b21
mov dword [ebp - 0x40], 0xf2fe868e
mov dword [ebp - 0x14], 0x4b0c
cmp dword [ebp - 0x14], 0x4b81
jle 0x415ac6
mov esi, ebx
mov dword [ebp - 0x3c], ebx
mov edi, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x38], edi
and edi, esi
mov esi, ebx
mov eax, esi
or eax, edi
cdq
push edx
push eax
mov ecx, 0xadf2f8
call fcn.00416069
inc esi
cmp esi, 0x1f51
jl 0x415a88
mov edi, dword [ebp - 0x28]
inc edi
mov dword [ebp - 0x28], edi
cmp edi, 0x49c2
mov esi, dword [ebp - 0x3c]
jl 0x415a7e
inc esi
mov dword [ebp - 0x3c], esi
cmp esi, 0x7dc0
jl 0x415a79
xor esi, esi
inc esi
push 2
pop edi
dec dword [ebp - 0x40]
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x14], 0x48b1
jge 0x415ae8
mov edx, 0xac1ddc
mov ecx, 0xadf2f8
call fcn.00418565
or dword [ebp - 4], 0xffffffff
jmp 0x415b14
cmp dword [ebp - 0x34], ebx
jne 0x415b21
inc dword [ebp - 0x20]
jmp 0x415a53
inc dword [ebp - 0x1c]
jmp 0x415954
mov dword [ebp - 0x20], 0x44077424
mov dword [ebp - 0x34], 0x3003f861
mov dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x3c]
imul eax, dword [ebp - 0x20], 0xc1b3
add eax, 0xa9332241
neg eax
sbb eax, eax
inc eax
push 0
pop eax
sets al
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x30]
call fcn.00413712
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x30], 9
mov dword [ebp - 0x44], 0xf58382bd
mov dword [ebp - 0x38], esi
push esi
lea ecx, [ebp - 0x20c]
call fcn.00416294
mov dword [ebp - 0x14], ebx
jmp 0x415bf5
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x24c], 0x4ec2e0cf
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x415be4
mov dword [ebp - 0x14], ebx
jmp 0x415c10
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20c]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x415c00
mov dword [ebp - 0x3c], 0x43e4
cmp dword [ebp - 0x3c], 0x45a1
jle 0x415cad
mov eax, ebx
mov dword [ebp - 0x40], ebx
mov ecx, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x18], ebx
cdq
idiv ecx
mov dword [ebp - 0x44], edx
mov eax, ebx
mov edi, ebx
lea ecx, [edi + eax]
mov eax, edx
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x310]
call fcn.0040191d
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x415c5f
mov eax, dword [eax]
push eax
call fcn.004b5e77
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x310]
call fcn.00416734
inc edi
cmp edi, 0x21c1
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x44]
jl 0x415c40
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x4cbf
jl 0x415c3e
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, 0x3733
mov eax, dword [ebp - 0x40]
jl 0x415c33
inc eax
mov dword [ebp - 0x40], eax
cmp eax, 0xf21
jl 0x415c2e
push 2
pop edi
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], ebx
jl 0x415d67
push esi
lea ecx, [ebp - 0x178]
call fcn.00416294
mov dword [ebp - 0x44], 3
mov dword [ebp - 0x18], ebx
jmp 0x415ce8
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x178]
mov dword [eax + ecx*4], 0x48b1647c
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x415cd5
cmp dword [ebp - 0x1c], 0xffffffff
sbb eax, eax
neg eax
mov dword [ebp - 0x30], eax
je 0x415d06
mov eax, dword [ebp - 0x178]
cmp dword [eax], ebx
mov edx, esi
jne 0x415d08
mov edx, ebx
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp + eax*4 - 0x24c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x24c], esi
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, edx
setl cl
xor edx, edx
cmp ecx, 0x5e3b
setne dl
mov eax, dword [ebp - 0x1c]
imul eax, esi
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x178]
call fcn.00416366
dec dword [ebp - 0x1c]
push 1
pop esi
jns 0x415cbd
push 2
pop edi
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x3c], 0x41f0
jge 0x415d82
push 0xac1e2c
call fcn.004b5e77
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x415dae
mov dword [ebp - 0x30], 0xffffffea
jmp 0x415df6
mov dword [ebp - 0x38], 0xfcc86f80
mov dword [ebp - 0x38], 0xd40a7fcc
mov dword [ebp - 0x1c4], 0xfffffffb
mov dword [ebp - 0x1c0], 0xfffffffb
mov dword [ebp - 0x1bc], 0xfffffffb
mov dword [ebp - 0x1b8], 0xfffffffb
mov dword [ebp - 0x1b8], esi
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xfffffffb
jge 0x415db7
lea ecx, [ebp - 0x20c]
call fcn.00416366
lea eax, [ebp - 0x70]
push eax
call fcn.004163a8
mov ecx, dword [ebp - 0xb0]
mov dword [eax], ecx
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0x34], 6
mov dword [ebp - 0x44], 8
mov dword [ebp - 0x18], ebx
push 3
pop ecx
jmp 0x415e43
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x80], 4
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x415e35
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 0x1a
jge 0x415f36
push 3
pop edi
mov dword [ebp - 0x44], 4
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x40], 0xfffffffc
cmp dword [ebp - 0x24], ebx
jne 0x415e74
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x44], 0x715ee56e
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp eax, esi
setge cl
inc ecx
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setge cl
mov eax, 0xc23cea2f
cmp eax, ecx
sbb eax, eax
neg eax
imul eax, dword [ebp - 0x30]
xor ecx, ecx
add eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
setns cl
push 5
pop eax
cmp eax, ecx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 0x8182
jle 0x415edd
cmp dword [ebp - 0x24], ebx
mov eax, ebx
je 0x415edf
mov eax, esi
xor ecx, ecx
cmp eax, 0xe055
setg cl
xor eax, eax
cmp ecx, 0x9e03d258
setl al
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x40], ebx
jg 0x415eff
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
neg eax
sub eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
cmp edi, eax
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x40], eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x1a
jl 0x415e58
push 2
pop edi
mov dword [ebp - 0x24], ebx
jmp 0x415fd7
mov dword [ebp - 0x18], 0x5b78c6ae
mov dword [ebp - 0x44], 0x6352b728
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0x80], ebx
jne 0x415fe0
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0x80], ebx
je 0x415f86
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x80]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x6a10b913
setne cl
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x34]
mov edx, esi
jne 0x415f88
mov edx, ebx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x80]
xor ecx, ecx
cmp edx, eax
setl cl
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0x80], ecx
je 0x415fa6
cmp dword [ebp - 0x18], ebx
mov eax, ebx
je 0x415fa8
mov eax, esi
xor edx, edx
cmp eax, 0xfffffffe
setne dl
inc edx
imul edx, dword [ebp - 0x18]
dec edx
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + eax*4 - 0x80]
imul ecx, edx
mov eax, dword [ebp - 0x24]
add ecx, dword [ebp + eax*4 - 0x80]
imul ecx, dword [ebp - 0x18]
mov dword [ebp - 0x7c], ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jle 0x415f3e
mov eax, dword [ebp + 8]
mov edi, eax
lea esi, [ebp - 0xb0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret