Function at 0x414c99
Capabilities:
Authenticate hmac
Encode data using xor
Encrypt data using speck

Disassembly:
mov eax, 0x4afd38
call fcn.004af828
sub esp, 0xebc
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x78], dl
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x14], 0xfffffffb
xor edi, edi
inc edi
push edi
lea ecx, [ebp - 0x4fc]
call fcn.00411076
mov dword [ebp - 0x24], 0x1bb35b68
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
jge 0x414cf6
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x4fc]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x414cdf
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x414db3
mov dword [ebp - 0x20], 0xfffffffb
imul ecx, dword [ebp - 0x20], 0xfff9
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp eax, ecx
setg dl
mov ecx, dword [ebp - 0x4fc]
imul edx, dword [ecx]
xor eax, eax
cmp edx, 0x8e2
setge al
add eax, 0xbb489f7a
mov dword [ecx], eax
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp eax, ecx
setge dl
imul ecx, edx, 0x6353
sub ecx, 0x507a
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setle dl
sub edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
cmp ecx, 0x857497f3
setne dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setg cl
imul edx, ecx, 0xf1d4
sub edx, 0x2b00
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x28], ecx
xor eax, eax
mov byte [ebp - 0x65], al
cmp byte [ebp - 0x65], al
je 0x414db0
push eax
call dword [0xac12f4]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xb
jle 0x414cfe
lea ecx, [ebp - 0x4fc]
call fcn.00411148
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x30], 0xfffffff5
jmp 0x414e70
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x414dfb
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x188], 0x3df603fa
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x414de2
xor eax, eax
mov byte [ebp - 0x65], al
cmp byte [ebp - 0x65], 0
je 0x414e24
push 0xbfa
push eax
push eax
push eax
push eax
push 0x2212
push 0x776
push 0x2454
call dword [0xac13b0]
xor eax, eax
mov dword [ebp - 0x184], 0x17
jmp 0x414e64
mov byte [ebp - 0x65], al
cmp byte [ebp - 0x65], 0
je 0x414e47
push 0x848
push eax
call dword [0xac1304]
xor eax, eax
mov byte [ebp - 0x65], al
cmp byte [ebp - 0x65], 0
je 0x414e5e
push edi
push 0x2189
call dword [0xac1444]
xor eax, eax
inc dword [ebp - 0x184]
cmp dword [ebp - 0x184], 0x18
jl 0x414e30
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xf
jle 0x414dd9
mov dword [ebp - 0x34], 0xfffffffa
push 6
pop ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x20], 0xfbe58499
mov dword [ebp - 0x30], 0xfffffffe
mov dword [ebp - 0x54], 0x1791e6e4
mov dword [ebp - 0x6c], 0xffffffff
mov dword [ebp - 0x1c], eax
jmp 0x414ebc
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xd4], 0xca29
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x414eab
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0xd0], 0
jne 0x414f21
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x60]
sub edx, eax
neg edx
sbb edx, edx
inc edx
mov ecx, dword [ebp - 0x20]
add ecx, edx
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setge dl
imul edx, dword [ebp - 0x34]
sub edx, 0x290e79f2
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setg dl
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x54]
sub eax, 0xb969
jne 0x414f21
mov ecx, edi
jmp 0x414f23
xor ecx, ecx
mov eax, dword [ebp - 0xd0]
add eax, ecx
jne 0x414f30
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0x60]
xor edx, edx
cmp eax, ecx
setg dl
mov eax, dword [ebp - 0xd0]
sub eax, edx
je 0x414fd4
mov dword [ebp - 0x48], 0x300ca3c4
mov dword [ebp - 0x4bc], 5
mov dword [ebp - 0x4b8], 5
mov dword [ebp - 0x4b4], 5
mov dword [ebp - 0x4b0], 5
cmp dword [ebp - 0x48], 0
je 0x414fb1
mov eax, dword [ebp - 0x48]
mov ecx, 0x87697ab8
cmp ecx, eax
sbb eax, eax
add eax, 0xffffc82b
sub eax, dword [ebp - 0xd4]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0xd0]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x4b4], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x4b4]
mov dword [ebp - 0x54], eax
jmp 0x415008
mov dword [ebp - 0x28], 0x925f8a41
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
xor eax, eax
mov byte [ebp - 0x65], al
cmp byte [ebp - 0x65], al
je 0x415008
push eax
push 0x218c
push eax
push 0x94
push 0x2167
push eax
push 0x313
call dword [0xac12fc]
mov dword [ebp - 0x14], 0x1a
jmp 0x415041
mov dword [ebp - 0x28], 0x3b6ac891
mov dword [ebp - 0x58], 8
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x14]
je 0x415032
xor eax, eax
cmp dword [ebp - 0x60], eax
je 0x415034
mov ecx, edi
jmp 0x415036
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x58], ecx
cmp dword [ebp - 0x6c], eax
jne 0x415047
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffff1
jne 0x415011
mov dword [ebp - 0x38], 0xfffffffb
mov dword [ebp - 0x14], 0xddc85f70
push 2
lea ecx, [ebp - 0x834]
call fcn.00411076
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x415085
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x834]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x41506d
xor eax, eax
mov dword [ebp - 0x14], eax
push 0xfffffffffffffffd
pop esi
cmp dword [ebp - 0x14], 0xffffffe3
jge 0x4151da
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x24], 0x1485
cmp dword [ebp - 0x24], 0x1690
jle 0x4150e7
mov esi, eax
mov edi, eax
lea eax, [edi + esi]
cdq
push edx
push eax
mov ecx, 0xabdd58
call fcn.00410d32
inc edi
cmp edi, 0x4de8
jl 0x4150ac
inc esi
cmp esi, 0x646c
push 0
pop eax
jl 0x4150aa
push eax
push eax
push eax
push 0x4c8
call dword [0xac1078]
xor eax, eax
xor edi, edi
inc edi
push 0xfffffffffffffffd
pop esi
mov dword [ebp - 4], eax
cmp dword [ebp - 0x24], 0x11cc
jge 0x415104
push 0xaa5ad8
push 0xabdd58
call fcn.00413ac6
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x415131
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x415155
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x95c], 0x58fb770a
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x41513c
xor eax, eax
mov dword [ebp - 0x48], ebx
jmp 0x4151ca
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x24], 0xe11a
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 3
jg 0x4151c2
mov dword [ebp - 0x28], esi
mov eax, dword [ebp - 0x38]
cmp dword [ebp + eax*4 - 0x95c], 0
je 0x4151b1
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + eax*4 - 0x95c]
xor edx, edx
cmp eax, 0xfffffff6
sete dl
add edx, 8
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 3
jle 0x41516d
xor eax, eax
cmp dword [ebp - 0x14], eax
jne 0x4151d0
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 0xc
jge 0x41515a
dec dword [ebp - 0x14]
xor eax, eax
jmp 0x41508b
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x14], eax
jl 0x4151fe
mov byte [ebp - 0x65], al
cmp byte [ebp - 0x65], 0
je 0x4151f9
push 0x1e18
push eax
call dword [0xac1318]
xor eax, eax
dec dword [ebp - 0x14]
jns 0x4151e2
lea ecx, [ebp - 0x834]
call fcn.00411148
push edi
lea ecx, [ebp - 0x64c]
call fcn.00411076
mov dword [ebp - 0x30], 0xfffffff6
mov dword [ebp - 0x1c], 0
jmp 0x415236
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x848], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x415225
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x848], eax
mov dword [ebp - 0x30], edi
xor eax, eax
cmp dword [ebp - 0x30], eax
jl 0x41525a
mov dword [ebp - 0x24], edi
dec dword [ebp - 0x24]
dec dword [ebp - 0x30]
jns 0x41524f
mov dword [ebp - 0x24], 0x1bb35b68
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
jge 0x415283
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x64c]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x41526c
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0xb
jg 0x415823
mov dword [ebp - 0x44], 0xfffffffb
mov dword [ebp - 0x54], 0x8769
mov dword [ebp - 0x20], 0x47d2038
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], 0x9ca3191b
mov byte [ebp - 0x65], al
cmp byte [ebp - 0x65], 0
je 0x4152c1
push eax
call dword [0xac130c]
xor eax, eax
cmp dword [ebp - 0x54], eax
jne 0x4152cf
mov eax, dword [ebp - 0x54]
xor ecx, ecx
xor eax, eax
jmp 0x4152d1
mov ecx, edi
cmp ecx, dword [ebp - 0x20]
jne 0x4152db
cmp dword [ebp - 0x20], eax
je 0x4152dd
mov eax, edi
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setne cl
mov edx, dword [ebp - 0x54]
sub edx, ecx
add edx, dword [ebp - 0x54]
neg edx
sbb edx, edx
neg edx
xor eax, eax
cmp edx, 0xfffc
setne al
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x4c], 0x3c9d
cmp dword [ebp - 0x4c], 0x3d66
jle 0x415381
push 0x9e7
call dword [0xac1428]
xor esi, esi
xor edi, edi
mov ebx, 0x78dc
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xb1c]
call fcn.00401c4d
pop ecx
pop ecx
mov ecx, eax
call fcn.00410d07
push eax
call fcn.00496907
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb1c]
call fcn.004116f7
add edi, esi
dec ebx
jne 0x415337
inc esi
cmp esi, 0x59b6
jl 0x415330
push ebx
call dword [0xac140c]
xor edi, edi
inc edi
push 6
pop ebx
imul ecx, dword [ebp - 0x44], 0xfff9
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, ecx
setg dl
mov ecx, dword [ebp - 0x64c]
imul edx, dword [ecx]
xor eax, eax
cmp edx, 0x8e2
setge al
add eax, 0xbb489f7a
mov dword [ecx], eax
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, ecx
setge dl
imul ecx, edx, 0x6353
sub ecx, 0x507a
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x44]
xor edx, edx
cmp ecx, eax
setle dl
sub edx, dword [ebp - 0x38]
sub edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
cmp ecx, 0x857497f3
setne dl
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp edx, eax
setg cl
imul edx, ecx, 0xf1d4
sub edx, 0x2b00
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x28], ecx
mov dword [ebp - 4], 2
cmp dword [ebp - 0x4c], 0x3ba6
jge 0x415436
push 0xaa5b64
call fcn.00496907
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x415460
xor eax, eax
mov dword [ebp - 0x48], 0xcfe0
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x28], 0xfffffff7
cmp dword [ebp - 0x48], eax
je 0x41549c
mov eax, dword [ebp - 0x48]
neg eax
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x48]
jle 0x41549a
mov ecx, edi
xor eax, eax
jmp 0x41549e
xor eax, eax
mov ecx, eax
cmp dword [ebp - 0x48], ecx
jle 0x4154aa
cmp dword [ebp - 0x48], eax
mov ecx, edi
jne 0x4154ac
mov ecx, eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
sub eax, 0x41fd9d08
neg eax
sbb eax, eax
inc eax
neg eax
cmp eax, 0x15466bc6
jg 0x41551c
push 4
lea ecx, [ebp - 0x634]
call fcn.00411076
mov dword [ebp - 0x1c], 0
jmp 0x4154f7
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x634]
mov dword [eax + ecx*4], 0x270f9e3
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x4154e4
mov dword [ebp - 0x34], 0x9b6917ab
mov eax, dword [ebp - 0x634]
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x634]
call fcn.00411148
jmp 0x41554e
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x58], 0x523e24b1
mov eax, dword [ebp - 0x50]
neg eax
je 0x415530
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x48], 0x6de7
mov dword [ebp - 0x50], 0xffffffff
push 3
lea ecx, [ebp - 0x280]
call fcn.00411076
mov dword [ebp - 0x28], 0x26d2e858
mov dword [ebp - 0x1c], 0
jmp 0x415589
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x280]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x415579
mov dword [ebp - 0x50], 0xb905
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x280]
mov dword [eax], edx
mov eax, dword [ebp - 0x48]
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x48], 0xffffffff
cmp dword [ebp - 0x48], 0x1c
je 0x41567f
mov dword [ebp - 0x1c], 0
jmp 0x4155d9
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x2c4], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x4155c8
mov dword [ebp - 0x50], 2
cmp dword [ebp - 0x50], 0
jl 0x41566f
mov esi, dword [ebp - 0x280]
mov dword [ebp - 0x1c], 0
jmp 0x41560f
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xe4], 0xba16
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x4155fe
mov byte [ebp - 0x65], 0
cmp byte [ebp - 0x65], 0
je 0x415629
push 0x2078
call dword [0xac1448]
mov eax, dword [ebp - 0xe4]
add eax, dword [esi + 8]
cmp eax, dword [ebp - 0xe4]
jg 0x415647
cmp dword [ebp - 0x2c4], 0
je 0x415647
mov ecx, edi
jmp 0x415649
xor ecx, ecx
mov eax, dword [ebp - 0xe4]
xor ebx, ebx
cmp ecx, eax
sete bl
mov edx, dword [ebp - 0x50]
xor ecx, ecx
cmp dword [esi + 8], ebx
setl cl
mov eax, dword [ebp - 0x280]
mov dword [eax + edx*4], ecx
dec dword [ebp - 0x50]
jns 0x4155f5
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 0x1c
jne 0x4155bf
push 6
pop ebx
lea ecx, [ebp - 0x280]
call fcn.00411148
mov byte [ebp - 0x15], 0
mov dword [ebp - 0x14], 0x42c70bb7
push edi
lea ecx, [ebp - 0x6f4]
call fcn.00411076
mov dword [ebp - 0x14], 0
jmp 0x4156b7
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x514], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x4156aa
mov dword [ebp - 0x14], 0
jmp 0x4156d9
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x6f4]
mov dword [eax + ecx*4], 0x59008cf5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4156c6
mov dword [ebp - 0x14], 0
jmp 0x415741
mov dword [ebp - 0x34], 0xd6f1860e
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + eax*4 - 0x514]
mov eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
inc eax
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x514]
sub eax, dword [ebp - 0x14]
sub edx, eax
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x514], edx
mov eax, dword [ebp - 0x14]
sub edx, eax
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x6f4]
mov dword [eax], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x4156e7
mov byte [ebp - 0x65], 0
cmp byte [ebp - 0x65], 0
je 0x415757
call dword [0xac145c]
lea ecx, [ebp - 0x6f4]
call fcn.00411148
cmp byte [ebp - 0x15], 0
je 0x415819
push 4
lea ecx, [ebp - 0x52c]
call fcn.00411076
mov dword [ebp - 0x14], 0x59e57ad9
mov dword [ebp - 0x28], 0x5a9576c3
mov dword [ebp - 0x1c], 0
jmp 0x4157a3
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x52c]
mov dword [eax + ecx*4], 0x4e2
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x415790
mov dword [ebp - 0x14], 3
cmp dword [ebp - 0x14], 0
jl 0x4157cf
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x52c]
cmp dword [eax + ecx*4], ebx
sete dl
mov dword [ebp - 0x28], edx
dec dword [ebp - 0x14]
jns 0x4157b6
mov dword [ebp - 0x14], 0
jmp 0x415800
mov dword [ebp - 0x1c], 0
jmp 0x4157ee
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x2d0], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x4157e1
mov dword [ebp - 0x2d0], 0xd8530de9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jle 0x4157d8
lea ecx, [ebp - 0x52c]
call fcn.00411148
push 0
call dword [0xac12f4]
inc dword [ebp - 0x38]
xor eax, eax
jmp 0x415286
lea ecx, [ebp - 0x64c]
call fcn.00411148
mov dword [ebp - 0x44], 0x1928c176
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x415849
push eax
push eax
call dword [0xac1320]
xor eax, eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0xfffffffa
je 0x415962
mov dword [ebp - 0x54], 0xfffffff8
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0xffffffe4
jge 0x41595a
mov byte [ebp - 0x15], al
mov dword [ebp - 0x24], 0x53a4
cmp dword [ebp - 0x24], 0x540e
jle 0x4158f8
mov ecx, eax
mov dword [ebp - 0x20], eax
mov ebx, eax
mov esi, eax
mov edi, eax
mov eax, ebx
cdq
idiv esi
lea eax, [edx + ecx]
mov dword [ebp - 0x28], eax
and eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xdbc]
call fcn.00401c4d
pop ecx
pop ecx
mov ecx, eax
call fcn.00410d07
push eax
call fcn.00496907
pop ecx
push 0
push 1
lea ecx, [ebp - 0xdbc]
call fcn.004116f7
inc edi
cmp edi, 0x5cba
mov eax, dword [ebp - 0x28]
jl 0x415893
inc esi
cmp esi, 0x759
push 0
pop eax
mov ecx, dword [ebp - 0x20]
jl 0x415886
inc ebx
cmp ebx, 0x5a71
jl 0x415884
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0x6ddf
jl 0x415882
xor edi, edi
inc edi
push 6
pop ebx
cmp byte [ebp - 0x15], 0
je 0x41590b
push edi
push eax
push 0x1027
call dword [0xac10b0]
mov dword [ebp - 4], 4
cmp dword [ebp - 0x24], 0x50b2
jge 0x415926
push 0xaa5bb8
call fcn.00496907
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x415950
dec dword [ebp - 0x54]
xor eax, eax
jmp 0x415860
dec dword [ebp - 0x44]
jmp 0x41584c
mov dword [ebp - 0x2c], 9
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x1c], eax
jmp 0x41597e
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x330], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x415971
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, edx
setne cl
imul eax, ecx, 7
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp eax, ecx
setl dl
xor ebx, ebx
cmp edx, 0x44182bd7
setge bl
mov eax, dword [ebp - 0x330]
xor ecx, ecx
cmp ebx, eax
setl cl
xor eax, eax
cmp ecx, dword [ebp - 0x330]
jle 0x415bc0
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 2
mov dword [ebp - 0x2c], eax
jg 0x415b04
cmp dword [ebp - 0x2c], 2
jg 0x415afc
mov dword [ebp - 0x20], 0xceffb91e
mov dword [ebp - 0x4c], 0x2cd8
cmp dword [ebp - 0x4c], 0x2d90
jle 0x415a74
mov ecx, eax
mov dword [ebp - 0x34], eax
mov ebx, eax
mov dword [ebp - 0x24], eax
mov esi, eax
mov edx, ecx
mov ecx, ebx
sar edx, cl
mov dword [ebp - 0x28], edx
mov ebx, edx
mov edi, eax
mov eax, esi
cdq
idiv edi
and edx, ebx
mov eax, edx
cdq
push edx
push eax
mov ecx, 0xabdd58
call fcn.00410d32
inc edi
cmp edi, 0x60d5
jl 0x415a28
inc esi
cmp esi, 0x641f
push 0
pop eax
jl 0x415a26
mov ebx, dword [ebp - 0x24]
inc ebx
mov dword [ebp - 0x24], ebx
cmp ebx, 0x72ef
mov ecx, dword [ebp - 0x34]
jl 0x415a19
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 0x7190
jl 0x415a14
xor edi, edi
inc edi
mov dword [ebp - 4], 6
cmp dword [ebp - 0x4c], 0x2a27
jge 0x415a95
push 0xaa5c00
push 0xabdd58
call fcn.00413ac6
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x415abc
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp + eax*4 - 0x330]
mov eax, dword [ebp - 0x50]
mov dword [ebp + eax*4 - 0x330], ecx
mov dword [ebp - 0x20], 2
cmp dword [ebp - 0x20], 0
jl 0x415af2
mov byte [ebp - 0x15], 0
cmp byte [ebp - 0x15], 0
je 0x415aed
call dword [0xac12c0]
dec dword [ebp - 0x20]
jns 0x415add
inc dword [ebp - 0x2c]
xor eax, eax
jmp 0x4159ee
inc dword [ebp - 0x50]
jmp 0x4159e1
cmp dword [ebp - 0x2c], 2
jg 0x415bd6
mov dword [ebp - 0x24], 0xd4
cmp dword [ebp - 0x24], 0x122
jle 0x415b57
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [esi + edi]
add eax, ebx
cdq
push edx
push eax
mov ecx, 0xabdd58
call fcn.00410d32
inc esi
cmp esi, 0x2ff6
jl 0x415b24
inc edi
cmp edi, 0x2c6f
push 0
pop eax
jl 0x415b22
inc ebx
cmp ebx, 0x5e98
jl 0x415b20
xor edi, edi
inc edi
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x415b71
push 0x15cb
push 0x1452
push eax
call dword [0xac1454]
mov dword [ebp - 4], 8
cmp dword [ebp - 0x24], 0x4b
jge 0x415b8f
push 0xaa5c50
push 0xabdd58
call fcn.00413ac6
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x415bb6
inc dword [ebp - 0x2c]
xor eax, eax
jmp 0x415b04
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x415bd4
push eax
push 0xfdc
call dword [0xac1324]
xor eax, eax
mov dword [ebp - 0x24], 0x6eb7
cmp dword [ebp - 0x24], 0x710b
jle 0x415c3c
push eax
push 0x122e
call dword [0xac1440]
xor esi, esi
xor edi, edi
mov eax, edi
or eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xb4c]
call fcn.00401c4d
pop ecx
pop ecx
mov ecx, eax
call fcn.00410d07
push eax
call fcn.00496907
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb4c]
call fcn.004116f7
inc edi
cmp edi, 0xe18
jl 0x415bf6
inc esi
cmp esi, 0x1a34
jl 0x415bf4
xor edi, edi
inc edi
push 2
lea ecx, [ebp - 0x7ec]
call fcn.00411076
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x24], 0x6c89
jge 0x415c64
push 0xaa5ca0
call fcn.00496907
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x415c8b
xor eax, eax
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x28], 0x21aa2910
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x415cc5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x7ec]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x415cad
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x415ce5
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x80c], 0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x415ccd
xor eax, eax
mov dword [ebp - 0x30], edi
cmp dword [ebp - 0x30], eax
jl 0x415dd7
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
jge 0x415d11
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x248], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x415cf9
xor eax, eax
mov dword [ebp - 0x34], 0xceb
cmp dword [ebp - 0x34], 0xe84
jle 0x415d69
mov ebx, eax
mov dword [ebp - 0x24], eax
mov edi, eax
mov esi, eax
mov dword [ebp - 0x28], ebx
mov ecx, edi
shl ebx, cl
mov eax, ebx
and eax, esi
cdq
push edx
push eax
mov ecx, 0xabdd58
call fcn.00410d32
inc esi
cmp esi, 0x328f
jl 0x415d31
inc edi
cmp edi, 0x8ba
push 0
pop eax
mov ebx, dword [ebp - 0x24]
jl 0x415d28
inc ebx
mov dword [ebp - 0x24], ebx
cmp ebx, 0x11c1
jl 0x415d26
xor edi, edi
inc edi
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4c]
mov ecx, edi
sub ecx, eax
add ecx, dword [ebp - 0x248]
jne 0x415d7e
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x28], 0x9f21c9b6
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x34], 0x9c7
jge 0x415da6
push 0xaa5cf0
push 0xabdd58
call fcn.00413ac6
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x415dcd
dec dword [ebp - 0x30]
xor eax, eax
jmp 0x415ce8
lea ecx, [ebp - 0x7ec]
call fcn.00411148
mov dword [ebp - 0x40], 0x890
push edi
lea ecx, [ebp - 0x544]
call fcn.00411076
mov dword [ebp - 0x48], 0xffffffff
mov dword [ebp - 0x20], 0xae649f6d
mov dword [ebp - 0x58], 0x14ad38dc
mov dword [ebp - 0x28], 0xfffffff8
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
jge 0x415e35
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x544]
mov dword [eax + ecx*4], 0x862f
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x415e1b
xor eax, eax
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], eax
jl 0x415eb1
mov ebx, 0xb2c41ac3
mov dword [ebp - 0x4c], 0x1e3ff14e
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x28], 0xffff
mov dword [ebp - 0x24], 0xe856dfc9
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x544]
cmp dword [eax + ecx*4], 0
jne 0x415e9e
mov eax, dword [ebp - 0x48]
cmp ebx, eax
sbb eax, eax
inc eax
xor ecx, ecx
cmp eax, 5
setle cl
mov dword [ebp - 0x34], ecx
xor eax, eax
cmp dword [ebp - 0x34], eax
jne 0x415e8a
cmp dword [ebp - 0x28], eax
mov ecx, eax
je 0x415e8c
mov ecx, edi
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
test eax, eax
setns cl
dec ecx
mov dword [ebp - 0x28], ecx
dec dword [ebp - 0x48]
jns 0x415e42
lea ecx, [ebp - 0x544]
call fcn.00411148
mov dword [ebp - 0x40], 0xa3df603f
xor eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x24], 0xdfe9f486
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x415ee7
push eax
push 0x25b2
push eax
push eax
call dword [0xac131c]
xor eax, eax
mov dword [ebp - 0x50], 0xfffffff2
cmp dword [ebp - 0x50], 0xfffffffe
jl 0x4160e7
mov dword [ebp - 0x14], 0xaa9ac70c
mov dword [ebp - 0x24], 0xb95520f3
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 0x7af8
cmp dword [ebp - 0x24], 0x7ea5
jle 0x415f4c
push eax
push eax
call dword [0xac12b0]
xor esi, esi
mov edi, esi
mov ebx, 0x6336
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xabdd58
call fcn.00410d32
dec edi
dec ebx
jne 0x415f2d
inc esi
cmp esi, 0xe17
jl 0x415f26
xor edi, edi
inc edi
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x24], 0x783d
jge 0x415f6d
push 0xaa5d70
push 0xabdd58
call fcn.00413ac6
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x415f94
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x415fb8
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xa38], 0xf93bd5de
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x415f9f
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x4160d3
push 2
lea ecx, [ebp - 0x700]
call fcn.00411076
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x415ff3
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x700]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x415fd8
xor eax, eax
mov esi, dword [ebp - 0x700]
mov dword [esi + 4], eax
mov dword [ebp - 0x20], 0xd96711db
mov dword [ebp - 0x34], 0x1cb64b69
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x416025
push 0x623
push eax
push eax
push 0xd9c
call dword [0xac1470]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x50]
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x41603d
cmp dword [ebp - 0x14], eax
jne 0x416040
mov eax, dword [ebp - 0x50]
mov eax, dword [esi + 4]
mov dword [ebp - 0xa34], eax
xor ecx, ecx
cmp eax, edi
setg cl
xor edx, edx
cmp dword [esi + 4], ecx
setl dl
xor eax, eax
cmp edx, edi
setl al
imul edx, eax, 0xf7c2
add edx, dword [esi + 4]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp eax, ecx
setg dl
mov dword [ebp - 0x24], edx
xor eax, eax
cmp dword [ebp - 0x24], eax
jne 0x416096
cmp dword [ebp - 0x14], eax
mov edx, eax
je 0x416098
mov edx, edi
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp eax, ecx
setg dl
mov dword [ebp - 0x28], edx
inc dword [esi + 4]
cmp dword [esi + 4], 0x15
push 0
pop eax
jl 0x415ffc
lea ecx, [ebp - 0x700]
call fcn.00411148
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffe6
jle 0x415fc0
inc dword [ebp - 0x50]
xor eax, eax
jmp 0x415eee
mov dword [ebp - 0x40], 0xc5a654fd
mov dword [ebp - 0x3c], 0xc2a2
mov dword [ebp - 0x50], 0x6b950ba1
mov dword [ebp - 0x14], 0x87f6fb80
push 2
lea ecx, [ebp - 0x19c]
call fcn.00411076
push 3
lea ecx, [ebp - 0x4d8]
call fcn.00411076
mov dword [ebp - 0x14], 0
jmp 0x416139
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x19c]
mov dword [eax + ecx*4], 3
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x416126
mov dword [ebp - 0x54], 0x1185
cmp dword [ebp - 0x54], 0x139f
jle 0x4161c9
xor edi, edi
xor esi, esi
mov dword [ebp - 0x20], esi
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x4c], 0x7708
xor ebx, ebx
mov dword [ebp - 0x24], 0x40e8
mov esi, dword [ebp - 0x34]
mov eax, ebx
or eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xcfc]
call fcn.00401c4d
pop ecx
pop ecx
mov ecx, eax
call fcn.00410d07
push eax
call fcn.00496907
pop ecx
push 0
push 1
lea ecx, [ebp - 0xcfc]
call fcn.004116f7
add ebx, esi
dec dword [ebp - 0x24]
jne 0x41616e
mov esi, dword [ebp - 0x20]
add dword [ebp - 0x34], esi
dec dword [ebp - 0x4c]
jne 0x416162
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x1474
jl 0x416156
inc edi
cmp edi, 0x1de3
jl 0x416151
xor edi, edi
inc edi
mov dword [ebp - 0x14], 0
jmp 0x4161e1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4d8]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x4161d2
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x54], 0xe09
jge 0x416202
push 0xaa5de8
call fcn.00496907
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x416229
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x50], eax
xor eax, eax
cmp dword [ebp - 0x50], eax
jne 0x41623d
cmp dword [ebp - 0x3c], eax
mov esi, eax
je 0x41623f
mov esi, edi
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x3c]
sub edx, dword [ebp - 0x3c]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp esi, ecx
setle al
sub eax, 0x6ec6
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
je 0x41645c
mov dword [ebp - 0x24], 0x5c124380
mov dword [ebp - 0x34], 0x46bac609
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x416318
mov dword [ebp - 0x24], 0x19d3
cmp dword [ebp - 0x24], 0x1a50
jle 0x4162c8
mov esi, eax
mov edi, esi
mov ebx, 0x242
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xabdd58
call fcn.00410d32
dec edi
dec ebx
jne 0x4162a9
inc esi
cmp esi, 0x2414
jl 0x4162a2
xor edi, edi
inc edi
call dword [0xac12c8]
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x24], 0x16dc
jge 0x4162ef
push 0xaa5e70
push 0xabdd58
call fcn.00413ac6
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x416316
xor eax, eax
mov dword [ebp - 0x3c], edi
cmp dword [ebp - 0x3c], eax
jl 0x4164a4
mov ebx, dword [ebp - 0x4d8]
jmp 0x41632e
xor eax, eax
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x28], 0x7a2d47e1
mov dword [ebp - 0x50], eax
jmp 0x41636e
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x14], eax
jl 0x41636b
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x416366
push eax
push eax
push 0x856
push 0x8de
call dword [0xac146c]
xor eax, eax
dec dword [ebp - 0x14]
jns 0x416349
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], edi
jle 0x416341
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, dword [ebx + 8]
setg cl
mov eax, dword [ebp - 0x19c]
sub ecx, dword [eax + edx*4]
mov dword [ebp - 0x24], ecx
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x19c]
mov eax, dword [ebp - 0x24]
inc eax
xor ecx, ecx
cmp eax, dword [edx + esi*4]
setge cl
xor eax, eax
cmp ecx, 0x14b4
setg al
xor edx, edx
cmp eax, 0xe7c650ba
setne dl
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp edx, eax
sete cl
mov eax, dword [ebp - 0x19c]
cmp ecx, dword [eax + edi*4]
jle 0x4163db
xor eax, eax
cmp dword [ebx + 8], eax
je 0x4163db
xor edi, edi
inc edi
jmp 0x4163e0
xor edi, edi
inc edi
mov eax, edi
xor edx, edx
cmp eax, 0xffffffff
setne dl
sub edx, dword [ebx + 4]
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, eax
setne cl
imul eax, ecx, 0xfffffff7
neg eax
sbb eax, eax
inc eax
mov ecx, dword [ebp - 0x3c]
imul edx, eax, 0xfe86
sub edx, 0x5da1
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x19c]
add edx, dword [eax + ecx*4]
jne 0x416425
xor eax, eax
cmp dword [ebp - 0x34], eax
mov edx, eax
je 0x416427
mov edx, edi
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov esi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x19c]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp dword [edx + esi*4], eax
setne cl
mov dword [ebp - 0x28], ecx
dec dword [ebp - 0x3c]
jns 0x41632c
jmp 0x4164a4
mov dword [ebp - 0x28], 0xffff
movdqa xmm0, xmmword [0xab1ce0]
movdqu xmmword [ebp - 0x91c], xmm0
lea ecx, [ebp - 0x91c]
lea eax, [ebp - 0x90c]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x828]
call fcn.00411122
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x828]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x828]
call fcn.00411148
lea ecx, [ebp - 0x4d8]
call fcn.00411148
lea ecx, [ebp - 0x19c]
call fcn.00411148
mov dword [ebp - 0x40], 0xffffffff
push edi
lea ecx, [ebp - 0x1f8]
call fcn.00411076
mov dword [ebp - 0x20], 0x874da862
push 3
lea ecx, [ebp - 0x55c]
call fcn.00411076
mov dword [ebp - 0x34], 0x2cf3e4c9
mov dword [ebp - 0x24], 0xfce24956
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 3
jge 0x416513
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax*4 - 0x9dc], 0
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 3
jl 0x4164fa
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], edi
jge 0x416535
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x1f8]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], edi
jl 0x41651b
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 3
jge 0x416559
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x55c]
mov dword [eax + ecx*4], 0x4a08
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 3
jl 0x41653e
xor eax, eax
mov ecx, dword [ebp - 0x1f8]
mov dword [ecx], 2
mov ebx, 0xfff7
cmp dword [ecx], eax
jl 0x41675d
mov dword [ebp - 0x50], 0x9609c3fb
mov dword [ebp - 0x24], 0x91509cf1
mov dword [ebp - 0x20], 0x6c9cd49f
mov dword [ebp - 0x44], 0x8fb0b4
mov dword [ebp - 0x40], 0xfffffffd
mov dword [ebp - 0x54], 0x82e7
inc dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 2
jg 0x416750
mov dword [ebp - 0x24], 0x12d2c87a
mov dword [ebp - 0x24], 0x2758e92e
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x34], 0x684f
cmp dword [ebp - 0x34], 0x6af6
jle 0x416646
push eax
push eax
call dword [0xac1410]
xor edi, edi
mov dword [ebp - 0x4c], edi
xor ebx, ebx
mov dword [ebp - 0x24], 0x580
xor esi, esi
mov eax, ebx
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xb7c]
call fcn.00401c4d
pop ecx
pop ecx
mov ecx, eax
call fcn.00410d07
push eax
call fcn.00496907
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb7c]
call fcn.004116f7
inc esi
cmp esi, 0x2e3c
jl 0x4165ec
mov edi, dword [ebp - 0x4c]
add ebx, edi
dec dword [ebp - 0x24]
jne 0x4165ea
inc edi
mov dword [ebp - 0x4c], edi
cmp edi, 0x6386
jl 0x4165e1
xor edi, edi
inc edi
mov ebx, 0xfff7
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x34], 0x65a0
jge 0x416661
push 0xaa5ee4
call fcn.00496907
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x41668d
mov eax, dword [ebp - 0x1f8]
mov eax, dword [eax]
cmp dword [ebp + eax*4 - 0x9dc], 0
jne 0x4166b5
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x54]
xor ecx, ecx
jmp 0x4166b7
mov ecx, edi
xor eax, eax
cmp ecx, 0xfffffffb
setne al
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x20]
neg eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x55c]
mov eax, dword [ebp - 0x28]
imul eax, dword [edx + 4]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x20], eax
or ecx, 0xffffffff
sub ecx, dword [edx + 4]
mov eax, dword [ebp - 0x20]
sub ecx, eax
xor eax, eax
cmp ecx, 5
setne al
xor ecx, ecx
cmp eax, dword [edx + 4]
setle cl
cmp ebx, ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x54]
sub ecx, eax
jne 0x41672c
mov eax, dword [ebp - 0x1f8]
cmp dword [eax], ecx
jne 0x41672c
mov ecx, edi
jmp 0x41672e
xor ecx, ecx
mov eax, dword [ebp - 0x44]
imul eax, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
inc dword [ebp - 0x50]
xor eax, eax
jmp 0x4165a2
mov ecx, dword [ebp - 0x1f8]
dec dword [ecx]
jmp 0x41656a
lea ecx, [ebp - 0x55c]
call fcn.00411148
lea ecx, [ebp - 0x1f8]
call fcn.00411148
push 3
lea ecx, [ebp - 0x574]
call fcn.00411076
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x4167a4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa20], 0xe29ea414
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x41678b
xor eax, eax
mov dword [ebp - 0x28], 0x6fe23a26
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], 0x6526
cmp dword [ebp - 0x24], 0x680f
jle 0x416826
push eax
push 0x10ec
push 0x2459
push eax
call dword [0xac12a4]
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + ebx]
xor eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xe70]
call fcn.00401c4d
pop ecx
pop ecx
mov ecx, eax
call fcn.00410d07
push eax
call fcn.00496907
pop ecx
push 0
push 1
lea ecx, [ebp - 0xe70]
call fcn.004116f7
inc esi
cmp esi, 0x6566
jl 0x4167d6
inc edi
cmp edi, 0x22aa
jl 0x4167d4
inc ebx
cmp ebx, 0x5462
jl 0x4167d2
xor edi, edi
inc edi
mov dword [ebp - 0x58], 0x4fa7
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x24], 0x6397
jge 0x416848
push 0xaa5f30
call fcn.00496907
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x41686f
push edi
lea ecx, [ebp - 0x664]
call fcn.00411076
mov dword [ebp - 0x14], 0
jmp 0x416895
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xb4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x416884
mov dword [ebp - 0x14], 0
jmp 0x4168b7
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x664]
mov dword [eax + ecx*4], 0x3a6d7d04
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4168a4
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb4]
neg eax
sbb eax, eax
inc eax
cmp eax, edi
sbb eax, eax
neg eax
cmp eax, 4
jne 0x4168f0
cmp dword [ebp - 0x14], 0
jne 0x4168f3
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0xb4]
xor edx, edx
cmp eax, ecx
setne dl
xor ebx, ebx
cmp edx, 0x50fa
setle bl
mov eax, dword [ebp - 0xb4]
xor ecx, ecx
cmp eax, ebx
setle cl
mov edx, dword [ebp - 0xb0]
imul edx, ecx
mov eax, dword [ebp - 0xb4]
xor ecx, ecx
cmp edx, eax
setle cl
dec ecx
mov eax, dword [ebp - 0x664]
mov dword [eax], ecx
je 0x416959
mov dword [ebp - 0x28], 0x5123020f
mov eax, dword [ebp - 0x28]
add eax, 0x1c8
mov dword [ebp - 0x14], eax
jmp 0x416973
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x416975
push eax
push 0x1580
push eax
push eax
push eax
push eax
call dword [0xac1308]
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x41699c
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x416999
push eax
push 0x237
push eax
push eax
push 0x128e
push eax
call dword [0xac12bc]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x12
jge 0x41697a
lea ecx, [ebp - 0x664]
call fcn.00411148
mov dword [ebp - 0x14], 0
jmp 0x4169c5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x574]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x4169b6
mov dword [ebp - 0x30], 0x25d16df2
mov dword [ebp - 0x28], 0x288a137b
push edi
lea ecx, [ebp - 0x7b0]
call fcn.00411076
mov dword [ebp - 0x1c], 0
jmp 0x4169fd
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x7b0]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x4169ee
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], eax
jl 0x416a28
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x416a23
call dword [0xac1478]
xor eax, eax
dec dword [ebp - 0x30]
jns 0x416a12
lea ecx, [ebp - 0x7b0]
call fcn.00411148
mov eax, dword [ebp - 0x574]
inc dword [eax + 4]
lea ecx, [ebp - 0x574]
call fcn.00411148
mov dword [ebp - 0x70], 4
mov dword [ebp - 0x50], 4
mov dword [ebp - 0x34], 0xdadf8609
mov dword [ebp - 0x24], 0xb01d976d
push 2
lea ecx, [ebp - 0x6e8]
call fcn.00411076
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x416a96
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x6e8]
mov dword [eax + ecx*4], 0x7854c3eb
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x416a7b
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x416aa6
push eax
call dword [0xac10a0]
mov eax, dword [ebp - 0x70]
mov esi, dword [ebp - 0x70]
sub esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
xor ecx, ecx
cmp eax, edi
setl cl
xor edx, edx
cmp esi, ecx
setge dl
mov eax, dword [ebp - 0x70]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x34]
neg edx
add edx, edx
mov eax, dword [ebp - 0x70]
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, dword [ebp - 0x70]
jg 0x416af2
cmp dword [ebp - 0x34], eax
mov ecx, eax
je 0x416af4
mov ecx, edi
cmp ecx, dword [ebp - 0x70]
jle 0x416b00
cmp dword [ebp - 0x50], eax
je 0x416b00
mov eax, edi
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0x70]
xor ecx, ecx
cmp edx, eax
setge cl
mov eax, dword [ebp - 0x70]
xor edx, edx
cmp ecx, eax
setne dl
imul edx, dword [ebp - 0x70]
sub edx, dword [ebp - 0x70]
imul edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
sub eax, edx
sub eax, dword [ebp - 0x70]
cmp eax, 0x860b
jl 0x416b61
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x416c44
push eax
push eax
push 0x248f
call dword [0xac1038]
jmp 0x416c44
mov dword [ebp - 0x4c], 0x179c
cmp dword [ebp - 0x4c], 0x19ae
jle 0x416bce
push 0x13ec
push 0x2046
push 0x16ea
push 0x13b4
push 0x118f
call dword [0xac1060]
xor edi, edi
xor esi, esi
mov dword [ebp - 0x24], esi
mov ebx, esi
mov esi, 0x34ee
mov eax, ebx
or eax, edi
cdq
push edx
push eax
mov ecx, 0xabdd58
call fcn.00410d32
dec ebx
dec esi
jne 0x416b9e
mov esi, dword [ebp - 0x24]
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x7048
jl 0x416b97
inc edi
cmp edi, 0x5216
jl 0x416b92
xor edi, edi
inc edi
mov dword [ebp - 0x70], 0
jmp 0x416bf7
mov dword [ebp - 0x50], edi
cmp dword [ebp - 0x50], 0
jl 0x416bf4
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x6e8]
cmp dword [eax + ecx*4], 0
jne 0x416bf4
dec dword [ebp - 0x50]
jns 0x416be0
inc dword [ebp - 0x70]
cmp dword [ebp - 0x70], edi
jle 0x416bd7
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x4c], 0x1784
jge 0x416c1d
push 0xaa5f98
push 0xabdd58
call fcn.00413ac6
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x416c44
push 0xfffffffffffffffd
pop ebx
lea ecx, [ebp - 0x6e8]
call fcn.00411148
mov dword [ebp - 0x2c], 0xfffffffb
push edi
lea ecx, [ebp - 0x2e0]
call fcn.00411076
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x1c], 0
jmp 0x416c88
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2e0]
mov dword [eax + ecx*4], 0xcf5720e8
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x416c75
mov eax, dword [ebp - 0x2e0]
mov dword [eax], 0xffffffe6
mov dword [ebp - 0x28], 7
mov dword [ebp - 0x1c], 0
jmp 0x416cba
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x2a8], 0x5425
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x416ca9
mov ecx, dword [ebp - 0x2a8]
xor edx, edx
mov eax, dword [ebp - 0x2e0]
cmp dword [eax], ecx
setle dl
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2e0]
inc dword [eax]
cmp dword [eax], ebx
jne 0x416c99
lea ecx, [ebp - 0x2e0]
call fcn.00411148
mov dword [ebp - 0x48], 2
mov dword [ebp - 0x40], 0xd3f7
mov dword [ebp - 0x48], 9
xor eax, eax
mov dword [ebp - 0x48], eax
jmp 0x416d6c
mov dword [ebp - 0x20], 0x1738ab65
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x416d37
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xa58], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x416d1e
xor eax, eax
mov dword [ebp - 0x20], edi
cmp dword [ebp - 0x20], eax
jl 0x416d69
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x416d64
push eax
push eax
push 0x1dd2
push eax
push 0x22e
push eax
push 0x1af8
push eax
call dword [0xac12d8]
xor eax, eax
dec dword [ebp - 0x20]
jns 0x416d3f
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 0x18
jg 0x416d0e
mov dword [ebp - 0x6c], 0x6fe23a26
mov dword [ebp - 0x3c], 3
push 3
lea ecx, [ebp - 0x1a8]
call fcn.00411076
mov dword [ebp - 0x34], 0xa1ede5a1
push 2
lea ecx, [ebp - 0x3b4]
call fcn.00411076
mov dword [ebp - 0x28], 0xfffffffc
mov dword [ebp - 0x58], 0xaed5a0a0
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x416dd2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1a8]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x416dba
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x416df6
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x3b4]
mov dword [eax + ecx*4], 0xdd4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x416ddb
xor eax, eax
cmp dword [ebp - 0x3c], eax
je 0x417077
mov dword [ebp - 0x2c], 0x6128f3b8
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 2
jg 0x416fc8
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x1a8]
cmp dword [eax + ecx*4], 0
je 0x416e85
mov edi, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp ecx, eax
setge dl
imul ecx, edx, 0xffff0001
sub ecx, 0x3a3dbc56
neg ecx
sbb ecx, ecx
inc ecx
xor edx, edx
mov eax, dword [ebp - 0x1a8]
cmp ecx, dword [eax + esi*4]
setle dl
sub edx, dword [eax]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x2c]
imul eax, edx
imul ecx, eax, 0x87e3
add ecx, 6
mov eax, dword [ebp - 0x1a8]
imul ecx, dword [eax + edi*4]
xor edi, edi
inc edi
test ecx, ecx
je 0x416e85
cmp dword [ebp - 0x2c], 0
je 0x416e85
mov esi, edi
jmp 0x416e87
xor esi, esi
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov ecx, dword [ebp - 0x1a8]
cmp esi, dword [ecx + eax*4]
setle dl
xor eax, eax
cmp edx, dword [ecx]
setg al
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x2c], 0
cmp dword [ebp - 0x2c], 2
jg 0x416fc0
mov dword [ebp - 0x24], 0x18cb
cmp dword [ebp - 0x24], 0x1c7e
jle 0x416f0b
xor edi, edi
xor esi, esi
mov eax, edi
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
mov ecx, 0xabdd58
call fcn.00410d32
inc esi
cmp esi, 0x33d9
jl 0x416ec7
inc edi
cmp edi, 0x14e6
jl 0x416ec5
xor edi, edi
inc edi
push edi
push 0x19d1
push 0x1590
push 0x613
push 0x1244
call dword [0xac1420]
mov dword [ebp - 4], 0x1a
cmp dword [ebp - 0x24], 0x17f3
jge 0x416f2c
push 0xaa5fd8
push 0xabdd58
call fcn.00413ac6
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x416f53
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x416f77
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x298], 0x451d77f1
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x416f5e
xor eax, eax
mov dword [ebp - 0x298], eax
jmp 0x416faf
mov dword [ebp - 0x20], 0x6fa4bc44
mov dword [ebp - 0x20], 2
cmp dword [ebp - 0x20], eax
jl 0x416fa9
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x416fa4
inc dword [ebp - 0x298]
cmp dword [ebp - 0x298], 2
jle 0x416f7f
inc dword [ebp - 0x2c]
jmp 0x416ea9
inc dword [ebp - 0x3c]
jmp 0x416e09
mov dword [ebp - 0x3c], 0xb
jmp 0x41706b
mov dword [ebp - 0x20], 0xfffffff9
xor eax, eax
cmp dword [ebp - 0x2c], eax
jne 0x417038
cmp dword [ebp - 0x3c], eax
jne 0x416ff0
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
dec eax
neg eax
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x3c]
jl 0x41700f
mov eax, dword [ebp - 0x1a8]
cmp dword [eax + 4], 0
jne 0x41700f
xor eax, eax
jmp 0x417011
mov eax, edi
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, 0xffff
setne cl
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp ecx, eax
setne dl
sub edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3b4]
cmp edx, dword [eax]
jg 0x41703b
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
mov ecx, edi
sub ecx, eax
add ecx, dword [ebp - 0x28]
xor edx, edx
mov eax, dword [ebp - 0x3b4]
cmp ecx, dword [eax]
setne dl
mov eax, dword [ebp - 0x2c]
imul eax, dword [ebp - 0x2c]
imul eax, edx
mov dword [ebp - 0x58], eax
dec dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 0xffffffe9
jge 0x416fd4
jmp 0x41709b
mov dword [ebp - 0x28], edi
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x41709b
push 0xeb2
push 0x26fd
push eax
call dword [0xac1310]
lea ecx, [ebp - 0x3b4]
call fcn.00411148
lea ecx, [ebp - 0x1a8]
call fcn.00411148
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], 0x8dd
cmp dword [ebp - 0x24], 0xcb5
jle 0x417127
mov ebx, eax
jmp 0x4170cc
xor eax, eax
mov edi, eax
jmp 0x4170d2
xor eax, eax
mov esi, eax
mov eax, edi
cdq
idiv esi
lea eax, [ebx + edx]
cdq
push edx
push eax
lea ecx, [ebp - 0xbac]
call fcn.00401c4d
pop ecx
pop ecx
mov ecx, eax
call fcn.00410d07
push eax
call fcn.00496907
pop ecx
push 0
push 1
lea ecx, [ebp - 0xbac]
call fcn.004116f7
inc esi
cmp esi, 0x5d52
jl 0x4170d4
inc edi
cmp edi, 0x4274
jl 0x4170d0
inc ebx
cmp ebx, 0x6efa
jl 0x4170ca
xor edi, edi
inc edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 4], 0x1c
cmp dword [ebp - 0x24], 0x7c4
jge 0x417145
push 0xaa603c
call fcn.00496907
pop ecx
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x417170
xor eax, eax
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0x14], 4
jmp 0x417325
mov dword [ebp - 0x60], 0xc3c69aed
mov dword [ebp - 0x50], 0x8eaf
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x4171b5
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xa50], 0x77201043
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x41719c
xor eax, eax
mov dword [ebp - 0x60], eax
jmp 0x4172ff
mov dword [ebp - 0x48], 0xb1a9565e
cmp dword [ebp - 0x48], eax
je 0x4172c8
mov dword [ebp - 0x20], 0xff29acd4
push 3
lea ecx, [ebp - 0x58c]
call fcn.00411076
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x417207
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x4172da
cmp dword [ebp - 0x60], 0x15
jne 0x4171bd
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x417322
push 0x1acb
push eax
push eax
push eax
call dword [0xac1300]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1b
jne 0x417185
mov dword [ebp - 0x5c], 0x4fa7
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x60], 0x17
jmp 0x417468
mov dword [ebp - 0x48], 0x22124f84
mov dword [ebp - 0x48], 0xa
jmp 0x41745c
mov dword [ebp - 0x1c], 0xfffffff6
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xfffffff7
jg 0x417459
cmp dword [ebp - 0x48], ebx
jne 0x417358
dec dword [ebp - 0x60]
cmp dword [ebp - 0x60], 7
je 0x417345
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x41748e
push eax
push eax
push 0x194c
push 0x13c3
push eax
call dword [0xac13b4]
push edi
lea ecx, [ebp - 0x5a4]
call fcn.00411076
mov dword [ebp - 0x30], 0x1928c176
xor eax, eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], al
je 0x4174b5
push eax
push eax
call dword [0xac1320]
xor eax, eax
mov dword [ebp - 0x30], eax
jmp 0x4174ea