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

Disassembly:
mov eax, 0x49c469
call fcn.0049b920
push ecx
mov eax, 0x1140
call fcn.004982c0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x60], dl
mov dword [ebp - 0x5c], ecx
xor edi, edi
inc edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x54], 0x6dee
xor eax, eax
cmp dword [ebp - 0x54], 0x7012
jle 0x4655b0
mov esi, eax
mov ebx, eax
mov edi, eax
mov ecx, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x3c], 0x765e
lea eax, [ebx + esi]
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xaa71a0
call fcn.00417cc4
mov ecx, dword [ebp - 0x28]
add ecx, edi
mov dword [ebp - 0x28], ecx
dec dword [ebp - 0x3c]
jne 0x465570
inc edi
cmp edi, 0x35ef
push 0
pop eax
jl 0x465564
inc ebx
cmp ebx, 0x6875
jl 0x465562
inc esi
cmp esi, 0x2715
jl 0x465560
xor edi, edi
inc edi
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x4655d2
push 0xfb5
push 0xa7b
push eax
push eax
push 0x1c86
call dword [0xaaa430]
xor eax, eax
mov dword [ebp - 4], eax
cmp dword [ebp - 0x54], 0x6adf
jge 0x4655ef
push 0xa999b4
push 0xaa71a0
call fcn.00419747
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x465616
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x16
je 0x4656af
mov dword [ebp - 0x34], 0xfffffff8
mov dword [ebp - 0x34], 0x10
jmp 0x46569a
mov dword [ebp - 0x38], 0x52f67d50
mov dword [ebp - 0x4c], 0xd850270f
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
xor ecx, ecx
test eax, eax
setns cl
mov edx, dword [ebp - 0x14]
sub edx, ecx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, eax
setl cl
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x14]
xor edx, edx
cmp eax, ecx
setne dl
sub edx, 0x7ab6
neg edx
sbb edx, edx
inc edx
sub edx, dword [ebp - 0x14]
xor ebx, ebx
cmp edx, 5
setl bl
sub ebx, 7
neg ebx
sbb ebx, ebx
inc ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp ebx, eax
setle cl
mov dword [ebp - 0x4c], ecx
dec dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0xffffffe6
jne 0x465635
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x16
jne 0x465625
xor eax, eax
mov dword [ebp - 0x44], edi
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x4656c9
push eax
push 0x252
call dword [0xaaa2b0]
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x4656de
push eax
push eax
push eax
push eax
call dword [0xaaa298]
xor eax, eax
mov dword [ebp - 0x54], 0x51be
cmp dword [ebp - 0x54], 0x53fe
jle 0x46576d
mov dword [ebp - 0x3c], eax
jmp 0x4656f5
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], 0x5ad3
jmp 0x465705
xor eax, eax
mov ebx, eax
jmp 0x46570b
xor eax, eax
mov esi, eax
mov eax, ecx
or eax, esi
or eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xd44]
call fcn.00401f5e
pop ecx
pop ecx
mov ecx, eax
call fcn.00417c99
push eax
call fcn.00484c7a
pop ecx
push 0
push edi
lea ecx, [ebp - 0xd44]
call fcn.004014ab
inc esi
cmp esi, 0x60b1
mov ecx, dword [ebp - 0x20]
jl 0x46570d
inc ebx
cmp ebx, 0xa18
jl 0x465709
mov esi, dword [ebp - 0x3c]
add ecx, esi
mov dword [ebp - 0x20], ecx
dec dword [ebp - 0x28]
jne 0x465703
inc esi
mov dword [ebp - 0x3c], esi
cmp esi, 0x3d05
jl 0x4656f3
mov dword [ebp - 4], 2
cmp dword [ebp - 0x54], 0x519a
jge 0x465788
push 0xa999e0
call fcn.00484c7a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4657af
xor eax, eax
mov dword [ebp - 0x14], 0xfdf99ff6
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], 0xebdb88dc
mov dword [ebp - 0x38], 0xd32de9e5
push 4
lea ecx, [ebp - 0x78c]
call fcn.00417e08
mov dword [ebp - 0x18], 0
jmp 0x4657f2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x78c]
mov dword [eax + ecx*4], 0xffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x4657df
mov dword [ebp - 0x14], 0
jmp 0x46587e
mov dword [ebp - 0x18], 0xfffa
mov dword [ebp - 0x20], 0xfffffffb
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], eax
jge 0x465853
cmp dword [ebp - 0x14], 0
jne 0x465820
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
test eax, eax
setle cl
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], 0
je 0x465836
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
sub eax, 0xf34e
neg eax
sbb eax, eax
inc eax
imul eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x465853
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, edi
setl cl
xor edx, edx
cmp ecx, 0x2b607800
setle dl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [ebp - 0x38], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x10
jne 0x465801
lea ecx, [ebp - 0x78c]
call fcn.004181c2
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x54], 0x6ed2
cmp dword [ebp - 0x54], 0x6f41
jle 0x46591c
xor ebx, ebx
mov dword [ebp - 0x3c], ebx
mov edx, ebx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x28], 0x4594
xor esi, esi
xor ebx, ebx
mov eax, esi
mov ecx, ebx
sar eax, cl
and eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x1098]
call fcn.00401f5e
pop ecx
pop ecx
mov ecx, eax
call fcn.00417c99
push eax
call fcn.00484c7a
pop ecx
push 0
push edi
lea ecx, [ebp - 0x1098]
call fcn.004014ab
inc ebx
cmp ebx, 0x171a
mov edx, dword [ebp - 0x20]
jl 0x4658bb
inc esi
cmp esi, 0x188f
jl 0x4658b9
dec edx
mov dword [ebp - 0x20], edx
dec dword [ebp - 0x28]
jne 0x4658b7
mov ebx, dword [ebp - 0x3c]
inc ebx
mov dword [ebp - 0x3c], ebx
cmp ebx, 0x1c05
jl 0x4658ab
mov dword [ebp - 0x20], 0x19d29be1
mov dword [ebp - 4], 4
cmp dword [ebp - 0x54], 0x6ccd
jge 0x46593e
push 0xa99a30
call fcn.00484c7a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x465965
xor eax, eax
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x44], 0xfffffffa
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x3c], 0x5d91
cmp dword [ebp - 0x3c], 0x5f6d
jle 0x4659fa
push edi
push 0x108c
call dword [0xaaa33c]
xor edi, edi
xor ebx, ebx
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov eax, esi
cdq
idiv ecx
lea ecx, [ebx + edx]
mov eax, edi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xaa71a0
call fcn.00417cc4
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, 0x4a2a
jl 0x46599e
inc esi
cmp esi, 0x2fe6
jl 0x465999
inc ebx
cmp ebx, 0x6aea
jl 0x465997
inc edi
cmp edi, 0x2f62
jl 0x465995
xor eax, eax
push eax
push 0x1759
push 0x239
push eax
call dword [0xaaa27c]
xor eax, eax
xor edi, edi
inc edi
mov dword [ebp - 0x44], eax
mov dword [ebp - 4], 6
cmp dword [ebp - 0x3c], 0x5b36
jge 0x465a1e
push 0xa99a88
push 0xaa71a0
call fcn.00419747
pop ecx
pop ecx
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x465a49
push 2
pop esi
xor eax, eax
mov dword [ebp - 0x44], 0x97412df3
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x44], 0x9cdc345f
mov dword [ebp - 0x28], 0xb6fd43dd
mov dword [ebp - 0x18], eax
jmp 0x465a80
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc98], 0x7ccc8959
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x465a6f
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], eax
inc dword [ebp - 0x20]
dec dword [ebp - 0x28]
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], edi
push esi
lea ecx, [ebp - 0x79c]
call fcn.00417e08
mov dword [ebp - 0x28], 0xfffa
mov dword [ebp - 0x18], 0
jmp 0x465ad0
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x79c]
mov dword [eax + ecx*4], 0xba1bf2b
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x465abd
dec dword [ebp - 0x28]
lea ecx, [ebp - 0x79c]
call fcn.004181c2
xor eax, eax
mov byte [ebp - 0x2d], al
mov dword [ebp - 0x28], 0x88e1b61b
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], 0x25155467
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x44], 0xc044b0bf
mov dword [ebp - 0x20], 0x51a9
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x465b27
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x64], 0x8d4081c2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x465b12
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x465b39
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x98], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x465b2c
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x20]
dec dword [ebp - 0x20]
sub ecx, eax
jne 0x465b5f
xor eax, eax
cmp dword [ebp - 0x64], eax
jne 0x465b5f
cmp dword [ebp - 0x98], eax
mov ecx, eax
je 0x465b61
mov ecx, edi
mov eax, dword [ebp - 0x28]
add eax, ecx
cmp dword [ebp - 0x64], eax
jge 0x465b77
xor eax, eax
cmp dword [ebp - 0x98], eax
mov ecx, eax
je 0x465b79
mov ecx, edi
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp eax, 0x5934
setne dl
add edx, ecx
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x64]
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [ebp - 0x28], ecx
cmp byte [ebp - 0x2d], 0
je 0x465bbf
push 0xfb5
push 0xa7b
xor eax, eax
push eax
push eax
push 0x1c86
call dword [0xaaa430]
mov dword [ebp - 0x3c], 0x59ba
cmp dword [ebp - 0x3c], 0x5b2e
jle 0x465c30
xor ebx, ebx
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x28], ecx
lea eax, [esi + ebx]
or eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0xd74]
call fcn.00401f5e
pop ecx
pop ecx
mov ecx, eax
call fcn.00417c99
push eax
call fcn.00484c7a
pop ecx
push 0
push edi
lea ecx, [ebp - 0xd74]
call fcn.004014ab
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, 0x3226
jl 0x465bd8
inc esi
cmp esi, 0x1438
jl 0x465bd3
inc ebx
cmp ebx, 0x4557
jl 0x465bd1
or ebx, 0xffffffff
push 2
pop esi
xor eax, eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0x16
je 0x466025
jmp 0x465c43
xor eax, eax
mov dword [ebp - 0x14], 0xfffffff9
mov dword [ebp - 0x38], 0xfffffffc
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x465c6f
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xce4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x465c5a
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x465c7e
mov dword [ebp - 0x38], 0xac70c309
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jle 0x465c74
mov dword [ebp - 0x14], 0xfffffffe
jmp 0x465ca1
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x465c9e
push eax
call dword [0xaaa418]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jge 0x465c8c
mov dword [ebp - 0x2c], 0xfffffff8
mov dword [ebp - 0x2c], 0x10
jmp 0x46600b
push esi
lea ecx, [ebp - 0x168]
call fcn.00417e08
mov dword [ebp - 0x14], 0x3532fe22
mov dword [ebp - 0x20], 0x8bd4dfbd
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jge 0x465cf8
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x168]
mov dword [eax + ecx*4], 9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x465cde
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jg 0x465de3
mov dword [ebp - 0x34], 4
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], edi
jg 0x465dd4
mov dword [ebp - 0x28], edi
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x168]
mov eax, dword [eax + ecx*4]
dec eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x28], 0xfffffff7
cmp dword [ebp - 0x28], 0
jne 0x465d50
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, 0x9744
setg cl
add ecx, dword [ebp - 0x48]
jne 0x465d50
xor edx, edx
jmp 0x465d52
mov edx, edi
mov esi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x168]
mov eax, dword [ebp - 0x14]
imul eax, edx
xor edx, edx
cmp eax, dword [ecx + esi*4]
setge dl
mov eax, dword [ebp - 0x168]
imul edx, dword [eax]
test edx, edx
jne 0x465d7d
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x465d7f
mov eax, edi
mov edx, dword [ebp - 0x34]
lea ecx, [eax + 0xfff7]
mov eax, dword [ebp - 0x168]
cmp ecx, dword [eax + edx*4]
jl 0x465d96
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x48]
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp ecx, eax
setle dl
inc edx
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x34]
jl 0x465dc0
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x20], edi
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], edi
jle 0x465d1a
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x465d04
push 2
pop esi
lea ecx, [ebp - 0x168]
call fcn.004181c2
mov dword [ebp - 0x4c], 0x52f67d50
mov dword [ebp - 0x24], 0x566a9272
mov dword [ebp - 0x14], 0xe7ad53a
mov dword [ebp - 0x28], 0x84edc02
mov dword [ebp - 0x28], 0x314b8123
mov dword [ebp - 0x28], 7
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x18], 0
cmp dword [ebp - 0x18], esi
jge 0x465e3f
xor esi, esi
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x6ec], esi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x465e29
push 2
pop esi
cmp dword [ebp - 0x24], 0
jne 0x465e8e
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov ecx, 0xc8e8427a
sub ecx, eax
je 0x465e5e
cmp dword [ebp - 0x24], 0
je 0x465e5e
mov edx, edi
jmp 0x465e60
xor edx, edx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, edx
setne cl
sub ecx, 0xfffffff6
neg ecx
sbb ecx, ecx
inc ecx
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x24]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
add ecx, dword [ebp - 0x24]
jne 0x465e8e
xor edx, edx
jmp 0x465e90
mov edx, edi
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x28]
sub edx, dword [ebp - 0x24]
imul edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setge cl
cmp ecx, dword [ebp - 0x24]
jl 0x465ebf
xor eax, eax
cmp dword [ebp - 0x14], eax
mov ecx, eax
je 0x465ec1
mov ecx, edi
xor eax, eax
cmp ecx, 0x260d
setl al
mov ecx, 0x86485466
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
dec eax
neg eax
sbb eax, eax
neg eax
sub eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x14], 0
jmp 0x465f0b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6ec], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x465efe
mov dword [ebp - 0x38], 0xd850270f
mov dword [ebp - 0x48], 0x25b0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x28], 0xfffffff8
mov dword [ebp - 0x38], 0xcaea0a9f
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x48]
sub eax, 0x3e62
push 0
pop eax
setns al
sub eax, 0x2e349581
je 0x465f6b
cmp dword [ebp - 0x48], 0
je 0x465f6b
mov eax, edi
jmp 0x465f6d
xor eax, eax
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setl dl
cmp edx, dword [ebp - 0x14]
jg 0x465f8b
cmp dword [ebp - 0x48], eax
je 0x465f8b
mov ecx, edi
jmp 0x465f8d
xor ecx, ecx
mov eax, dword [ebp - 0x48]
imul eax, dword [ebp - 0x48]
add eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x38], eax
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x465fb4
push 0x1fdc
push eax
call dword [0xaaa274]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
test eax, eax
setns cl
mov edx, dword [ebp - 0x40]
sub edx, ecx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setl cl
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x40]
xor edx, edx
cmp eax, ecx
setne dl
sub edx, 0x7ab6
neg edx
sbb edx, edx
inc edx
sub edx, dword [ebp - 0x40]
xor ebx, ebx
cmp edx, 5
setl bl
sub ebx, 7
neg ebx
sbb ebx, ebx
inc ebx
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp ebx, eax
setle cl
mov dword [ebp - 0x38], ecx
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xffffffe6
jne 0x465cba
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 0x16
push 0xffffffffffffffff
pop ebx
jne 0x465c41
mov dword [ebp - 4], 8
cmp dword [ebp - 0x3c], 0x597e
jge 0x466040
push 0xa99af4
call fcn.00484c7a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x466067
xor eax, eax
mov dword [ebp - 0x18], 0xfffffff7
mov dword [ebp - 0x18], 0x16
jmp 0x466090
cmp byte [ebp - 0x2d], 0
je 0x46608d
push eax
push 0x18f2
call dword [0xaaa090]
xor eax, eax
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xfffffffe
mov byte [ebp - 0x2d], al
jne 0x466079
cmp byte [ebp - 0x2d], 0
je 0x4660ae
push eax
push eax
push 0xf69
call dword [0xaaa3f0]
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 4
jge 0x4660cf
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc68], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x4660ba
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x46610d
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 3
jg 0x46610a
mov eax, dword [ebp - 0x48]
xor esi, esi
cmp dword [ebp + eax*4 - 0xc68], esi
jne 0x466108
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x4660ff
push eax
call dword [0xaaa054]
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 3
jle 0x4660e0
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xc
jle 0x4660d4
mov dword [ebp - 0x3c], 0x52a5
cmp dword [ebp - 0x3c], 0x545c
jle 0x466170
mov esi, eax
jmp 0x466129
xor eax, eax
mov ebx, eax
mov dword [ebp - 0x28], 0x51ed
mov eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xf48]
call fcn.00401f5e
pop ecx
pop ecx
mov ecx, eax
call fcn.00417c99
push eax
call fcn.00484c7a
pop ecx
push 0
push edi
lea ecx, [ebp - 0xf48]
call fcn.004014ab
add ebx, esi
dec dword [ebp - 0x28]
jne 0x466132
inc esi
cmp esi, 0x5d7e
jl 0x466127
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x3c], 0x5227
jge 0x46618b
push 0xa99b58
call fcn.00484c7a
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4661b2
xor eax, eax
mov dword [ebp - 0x2c], 0x52
mov dword [ebp - 0x4c], 0xa99bc8
cmp dword [ebp - 0x2c], 0x133
jle 0x4661f4
mov ebx, eax
mov esi, eax
lea eax, [esi + ebx]
cdq
push edx
push eax
mov ecx, 0xaa71a0
call fcn.00417cc4
inc esi
cmp esi, 0x6572
jl 0x4661cf
inc ebx
cmp ebx, 0x5703
push 0
pop eax
jl 0x4661cd
mov dword [ebp - 0x48], 0x32fe2236
mov dword [ebp - 0x38], 0
movdqa xmm0, xmmword [0xa9bff0]
movdqu xmmword [ebp - 0x92c], xmm0
lea ecx, [ebp - 0x92c]
lea eax, [ebp - 0x91c]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x7c4]
call fcn.00417e7e
mov dword [ebp - 0x54], 0x2dc870af
mov dword [ebp - 0x18], 0
jmp 0x46624d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x5f8], 0x9b55
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x46623c
mov dword [ebp - 0x48], 3
or ebx, 0xffffffff
cmp dword [ebp - 0x48], 0
jl 0x4664ad
push edi
lea ecx, [ebp - 0x34c]
call fcn.00417e08
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x44], 6
mov dword [ebp - 0x44], 0xf3ac9d73
push edi
lea ecx, [ebp - 0x7ac]
call fcn.00417e08
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], edi
jge 0x4662b7
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x34c]
mov dword [eax + ecx*4], 0x260417be
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], edi
jl 0x46629d
xor eax, eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], edi
jge 0x4662d9
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x7ac]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], edi
jl 0x4662bf
xor eax, eax
mov dword [ebp - 0x3c], 0x4d96
cmp dword [ebp - 0x3c], 0x5109
jle 0x466336
mov edi, eax
mov dword [ebp - 0x28], eax
mov esi, eax
mov ebx, eax
mov dword [ebp - 0x38], edi
mov ecx, esi
shl edi, cl
mov eax, edi
mov ecx, ebx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xaa71a0
call fcn.00417cc4
inc ebx
cmp ebx, 0xd19
jl 0x4662f9
inc esi
cmp esi, 0x3224
push 0
pop eax
mov edi, dword [ebp - 0x28]
jl 0x4662f0
inc edi
mov dword [ebp - 0x28], edi
cmp edi, 0x7a79
jl 0x4662ee
xor edi, edi
inc edi
or ebx, 0xffffffff
mov dword [ebp - 0x40], 0
jmp 0x466350
mov eax, dword [ebp - 0x40]
mov dword [ebp + eax*4 - 0x1130], 0x34c266d8
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 4
jl 0x46633f
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x3c], 0x4bb4
jge 0x466377
push 0xa99c18
push 0xaa71a0
call fcn.00419747
pop ecx
pop ecx
mov dword [ebp - 4], ebx
jmp 0x46639f
mov eax, dword [ebp - 0x34c]
mov dword [eax], 3
lea esi, [ebp - 0x850]
lea eax, [ebp - 0x840]
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x44], 0xfffffff9
mov dword [ebp - 0x44], 0x1c3a23fe
mov dword [ebp - 0x44], 0xecc2443a
movdqa xmm0, xmmword [0xa9c010]
movdqu xmmword [ebp - 0x850], xmm0
push ecx
push eax
push esi
lea ecx, [ebp - 0xb38]
call fcn.00417e7e
mov dword [ebp - 0x28], 0xff79
dec dword [ebp - 0x28]
lea ecx, [ebp - 0xb38]
call fcn.004181c2
mov eax, dword [ebp - 0x34c]
dec dword [eax]
lea eax, [ebp - 0x840]
jns 0x4663b7
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x5f8]
mov eax, dword [ebp - 0x5ec]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp + eax*4 - 0x5f8]
mov eax, dword [ebp - 0x54]
xor edx, edx
cmp ecx, eax
setl dl
xor ecx, ecx
cmp edx, 0xfffffff7
setne cl
mov eax, dword [ebp - 0x7c4]
mov dword [eax + 8], ecx
cmp ecx, ebx
jne 0x466454
cmp dword [ebp - 0x54], 0
je 0x466454
mov ecx, edi
jmp 0x466456
xor ecx, ecx
xor eax, eax
cmp ecx, 0xd07a
setne al
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp eax, ecx
setle dl
cmp edx, 0x8cb5c746
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp + eax*4 - 0x5f8]
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp - 0x38], ecx
lea ecx, [ebp - 0x7ac]
call fcn.004181c2
lea ecx, [ebp - 0x34c]
call fcn.004181c2
dec dword [ebp - 0x48]
jmp 0x46625d
lea ecx, [ebp - 0x7c4]
call fcn.004181c2
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x2c], 0xfffffcea
jge 0x4664d7
push dword [ebp - 0x4c]
push 0xaa71a0
call fcn.00419747
pop ecx
pop ecx
mov dword [ebp - 4], ebx
jmp 0x4664ff
xor eax, eax
mov dword [ebp - 0x24], 0xe0648261
mov dword [ebp - 0x120], 0x1e948708
mov dword [ebp - 0x11c], 0x1e948708
mov dword [ebp - 0x118], 0x1e948708
mov dword [ebp - 0x114], 0x1e948708
mov dword [ebp - 0x14], 0xc9f196e6
mov dword [ebp - 0x44], 0xfffffff9
mov dword [ebp - 0x18], eax
jmp 0x466554
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x8c], 0xfff8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x466543
mov eax, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x120]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x120]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x11c], ecx
mov eax, dword [ebp - 0x88]
mov eax, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x88]
mov eax, dword [ebp - 0x114]
xor ecx, ecx
cmp eax, 7
setle cl
mov dword [ebp - 0x14], ecx
xor eax, eax
cmp dword [ebp - 0x14], eax
je 0x46660e
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x38], 0xde6b786a
cmp dword [ebp - 0x18], eax
jne 0x4665fd
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x88]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x18]
sub ecx, eax
jne 0x4665fd
xor edx, edx
jmp 0x4665ff
mov edx, edi
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [ebp - 0x38], ecx
jmp 0x46661d
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x46661f
push eax
call dword [0xaaa084]
xor eax, eax
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x14], eax
jl 0x46663a
xor esi, esi
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x8c], esi
jne 0x46663a
dec dword [ebp - 0x14]
jns 0x466629
mov dword [ebp - 0x44], 0x63785551
push edi
lea ecx, [ebp - 0xd0]
call fcn.00417e08
mov dword [ebp - 0x14], 0
jmp 0x466667
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x174], 0xc8b1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x466656
mov dword [ebp - 0x14], 0
jmp 0x466689
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xd0]
mov dword [eax + ecx*4], 0x3fcb50bf
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x466676
mov eax, dword [ebp - 0xd0]
xor esi, esi
mov dword [eax], esi
mov dword [ebp - 0x3c], 0x9cf30836
mov dword [ebp - 0x18], 0
jmp 0x4666b9
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x94], 0x1aa08ecb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x4666a8
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax]
mov ecx, dword [ebp + eax*4 - 0x174]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax]
mov dword [ebp + eax*4 - 0x174], ecx
xor eax, eax
cmp dword [ebp - 0x170], eax
je 0x46672a
mov dword [ebp - 0x18], 0xfffffff6
mov dword [ebp - 0x38], 0xfffffffc
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x46671f
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], 0x1dfd9475
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x4666fc
mov esi, dword [ebp - 0xd0]
jmp 0x4667c8
mov esi, dword [ebp - 0xd0]
jmp 0x4667ca
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x28], ebx
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x46673f
push eax
call dword [0xaaa29c]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax]
xor esi, esi
cmp dword [ebp + eax*4 - 0x174], esi
je 0x466790
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x28], 0x6c8c
mov eax, dword [ebp - 0xd0]
mov esi, dword [eax]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, esi
setge cl
xor edx, edx
cmp ecx, 0xe587
setge dl
mov eax, esi
sub eax, edx
add eax, dword [ebp + esi*4 - 0x174]
cmp dword [ebp - 0x94], eax
jle 0x466790
mov ecx, edi
jmp 0x466792
xor ecx, ecx
mov eax, dword [ebp - 0x94]
sub ecx, eax
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp ecx, eax
sete dl
add edx, 0x7ef23e46
xor ecx, ecx
mov esi, dword [ebp - 0xd0]
cmp edx, dword [esi]
setle cl
xor eax, eax
cmp ecx, 0x3735b263
setg al
mov dword [ebp - 0x94], eax
xor eax, eax
inc dword [esi]
cmp dword [esi], 2
jle 0x466698
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x4667f3
push 0x250d
push 0x2d2
push 0xf99
call dword [0xaaa410]
lea ecx, [ebp - 0xd0]
call fcn.004181c2
mov dword [ebp - 0x38], edi
movdqa xmm0, xmmword [0xa9bfd0]
movdqu xmmword [ebp - 0x8fc], xmm0
lea ecx, [ebp - 0x8fc]
lea eax, [ebp - 0x8ec]
push ecx
push eax
push ecx
lea ecx, [ebp - 0xb50]
call fcn.00417e7e
mov dword [ebp - 0x18], 7
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x46684f
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x46684c
push eax
push eax
call dword [0xaaa0a4]
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jle 0x466839
lea ecx, [ebp - 0xb50]
call fcn.004181c2
mov dword [ebp - 0x20], 0x19f0
cmp dword [ebp - 0x20], 0x1aed
jle 0x4668d1
push 0x1341
call dword [0xaaa318]
xor esi, esi
mov dword [ebp - 0x54], esi
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x3c], 0x4871
mov ebx, eax
mov esi, 0x4dc4
mov eax, ebx
cdq
push edx
push eax
mov ecx, 0xaa71a0
call fcn.00417cc4
dec ebx
dec esi
jne 0x466893
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x28]
add eax, esi
mov dword [ebp - 0x28], eax
dec dword [ebp - 0x3c]
jne 0x46688c
inc esi
mov dword [ebp - 0x54], esi
cmp esi, 0x75fa
jl 0x466880
xor eax, eax
push eax
push 0x225
push eax
call dword [0xaaa2ec]
push 3
lea ecx, [ebp - 0x444]
call fcn.00417e08
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x20], 0x188a
jge 0x4668ff
push 0xa99cc4
push 0xaa71a0
call fcn.00419747
pop ecx
pop ecx
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x46692a
xor eax, eax
mov dword [ebp - 0x40], 0x8094a188
mov dword [ebp - 0x34], 0xfffffffc
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x466957
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x70], 0x92975a14
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x466942
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x466979
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x224], 0xc077
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x466960
xor eax, eax
cmp eax, dword [ebp - 0x40]
je 0x466985
mov eax, edi
cmp eax, dword [ebp - 0x40]
jne 0x466988
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x40]
jle 0x466b7e
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x688], 0xcad2
mov dword [ebp - 0x684], 0xcad2
mov dword [ebp - 0x680], 0xcad2
mov dword [ebp - 0x67c], 0xcad2
mov dword [ebp - 0x14], 4
mov dword [ebp - 0x18], 0
jmp 0x4669f5
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x390], 0xdaacda2a
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x4669e4
mov eax, dword [ebp - 0x48]
xor eax, eax
cmp dword [ebp - 0x40], eax
jne 0x466a13
mov dword [ebp - 0x2c], 0x1d68
cmp dword [ebp - 0x2c], eax
mov esi, eax
je 0x466a15
mov esi, edi
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x388]
jne 0x466a2d
cmp dword [ebp - 0x38c], 0
je 0x466a2d
mov ecx, edi
jmp 0x466a2f
xor ecx, ecx
mov eax, dword [ebp - 0x40]
add eax, 0x10fbf2b8
add eax, ecx
xor ecx, ecx
cmp eax, 0x925d3c09
setne cl
mov eax, dword [ebp - 0x384]
xor edx, edx
cmp ecx, eax
setle dl
imul edx, esi
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x390], ecx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38c]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x688]
xor ecx, ecx
test eax, eax
setg cl
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
xor edx, edx
cmp ecx, eax
setg dl
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x28], 0x6b54
cmp dword [ebp - 0x28], 0x6d6c
jle 0x466aec
xor edi, edi
xor ebx, ebx
xor esi, esi
mov eax, ebx
cdq
idiv esi
lea eax, [edi + edx]
cdq
push edx
push eax
mov ecx, 0xaa71a0
call fcn.00417cc4
inc esi
cmp esi, 0x7d56
jl 0x466aa5
inc ebx
cmp ebx, 0x1548
jl 0x466aa3
inc edi
cmp edi, 0x56cb
jl 0x466aa1
xor eax, eax
push eax
push eax
push 0x58c
push eax
push eax
call dword [0xaaa31c]
xor edi, edi
inc edi
or ebx, 0xffffffff
xor eax, eax
mov dword [ebp - 0x48], eax
jmp 0x466b21
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], eax
jl 0x466b1e
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], eax
jg 0x466b19
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x70], 0x618b2576
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0
jle 0x466b03
xor eax, eax
dec dword [ebp - 0x14]
jns 0x466afb
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], eax
jle 0x466af3
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x28], 0x6898
jge 0x466b47
push 0xa99d2c
push 0xaa71a0
call fcn.00419747
pop ecx
pop ecx
mov dword [ebp - 4], ebx
xor eax, eax
or ebx, 0xffffffff
mov dword [ebp - 0x18], eax
jmp 0x466c6d
xor esi, esi
mov dword [ebp - 0x20], esi
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x34], esi
cmp dword [ebp - 0x34], 0x29
jge 0x466b4a
push 4
lea ecx, [ebp - 0x594]
call fcn.00417e08
mov dword [ebp - 0x14], 0
jmp 0x466bbe
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x594]
mov dword [eax + ecx*4], 4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x466bab
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 4
jge 0x466be6
xor esi, esi
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x86c], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x466bd3
mov eax, dword [ebp - 0x868]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x868]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, 0xc1ab
jg 0x466c10
xor eax, eax
cmp dword [ebp - 0x86c], eax
mov ebx, eax
je 0x466c12
mov ebx, edi
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x594]
mov dword [eax], esi
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x220]
xor edx, edx
cmp eax, ecx
setl dl
mov eax, dword [ebp - 0x220]
xor ecx, ecx
cmp ebx, eax
setle cl
xor eax, eax
cmp edx, ecx
sete al
inc eax
add eax, esi
mov dword [ebp - 0x70], eax
lea ecx, [ebp - 0x594]
call fcn.004181c2
inc dword [ebp - 0x34]
jmp 0x466b8f
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x444]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x466c5a
mov dword [ebp - 0x48], 2
inc dword [ebp - 0x48]
mov dword [ebp - 0x48], 0xf
jmp 0x466cb6
mov dword [ebp - 0x38], 0xfffffffb
mov dword [ebp - 0x4c], 0x1f782a18
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x4c], eax
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x466cb3
push eax
push eax
push 0xe55
push eax
push eax
call dword [0xaaa038]
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 0x15
jl 0x466c86
mov dword [ebp - 0x24], 0
cmp dword [ebp - 0x24], 0xffffffef
jne 0x467345
push 2
lea ecx, [ebp - 0x23c]
call fcn.00417e08
push 3
lea ecx, [ebp - 0x144]
call fcn.00417e08
push 3
lea ecx, [ebp - 0x230]
call fcn.00417e08
mov dword [ebp - 0x2c], 0x411d7fea
mov dword [ebp - 0x204], ebx
mov dword [ebp - 0x200], ebx
mov dword [ebp - 0x1fc], ebx
mov dword [ebp - 0x1f8], ebx
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 2
jge 0x466d3c
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x23c]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 2
jl 0x466d21
xor eax, eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 3
jge 0x466d5e
xor esi, esi
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x144]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 3
jl 0x466d47
xor eax, eax
mov dword [ebp - 0x40], eax
jmp 0x466d76
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x230]
mov dword [eax + ecx*4], 0xd5feaf86
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 3
jl 0x466d63
mov eax, dword [ebp - 0x144]
mov dword [eax], edi
mov ebx, dword [ebp - 0x23c]
push 4
lea ecx, [ebp - 0x3d8]
call fcn.00417e08
mov dword [ebp - 0x18], 0
jmp 0x466daf
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3d8]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x466da0
mov esi, dword [ebp - 0x144]
mov edx, dword [esi]
mov ecx, dword [ebp - 0x23c]
mov eax, dword [ebx + 4]
mov dword [ecx + edx*4], eax
mov ecx, eax
mov eax, dword [ebp - 0x3d8]
mov dword [eax + 0xc], ecx
lea ecx, [ebp - 0x3d8]
call fcn.004181c2
dec dword [esi]
jns 0x466d8a
cmp dword [esi + 8], 0
je 0x466e17
mov eax, dword [ebp - 0x230]
mov dword [eax + 4], edi
mov eax, edi
sub eax, dword [esi]
xor ecx, ecx
cmp eax, dword [esi]
setge cl
xor eax, eax
cmp ecx, dword [esi]
setg al
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
mov esi, dword [ebp - 0x144]
je 0x466e17
mov eax, edi
jmp 0x466e19
xor eax, eax
xor ecx, ecx
cmp eax, dword [esi]
setne cl
xor eax, eax
cmp dword [esi], ecx
setne al
mov dword [esi], eax
mov dword [ebp - 0x34], 0x3734bd47
mov dword [ebp - 0x28], 0x40293e9f
mov dword [ebp - 0x28], 0xfd024ca9
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x2c], 0x18
cmp dword [ebp - 0x2c], 0xffffffeb
jl 0x466e94
mov esi, dword [ebp - 0x230]
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x4c], edi
xor eax, eax
cmp dword [esi + 8], 0xffff
sete al
xor ecx, ecx
cmp eax, 8
setne cl
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, ecx
setne dl
add edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x204]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x4c], ecx
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xffffffeb
jge 0x466e54
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x34], 0
jne 0x466eb5
mov eax, dword [ebp - 0x200]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x200]
mov eax, dword [ebp - 0x34]
mov edx, edi
sub edx, eax
mov eax, dword [ebp - 0x204]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x23c]
sub edx, dword [eax]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, eax
setg cl
mov eax, dword [ebp - 0x230]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x200]
mov eax, dword [ebp - 0x144]
mov dword [eax + 4], edi
mov dword [ebp - 0x38], 0x25a285de
lea ecx, [ebp - 0x230]
call fcn.004181c2
lea ecx, [ebp - 0x144]
call fcn.004181c2
lea ecx, [ebp - 0x23c]
call fcn.004181c2
mov dword [ebp - 0x3c], 0xffff
push edi
lea ecx, [ebp - 0x3e4]
call fcn.00417e08
mov dword [ebp - 0x18], 0xa18885c6
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x466f79
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3e4]
mov dword [eax + ecx*4], 0x198a8f93
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x466f5f
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], eax
jl 0x466f96
xor esi, esi
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3e4]
cmp dword [eax + ecx*4], esi
jne 0x466f96
dec dword [ebp - 0x18]
jns 0x466f83
lea ecx, [ebp - 0x3e4]
call fcn.004181c2
mov dword [ebp - 0x58], 0xfffffffa
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x34], 0xca3c0bf9
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x2c], 0xf1adb2bc
push 3
lea ecx, [ebp - 0x18c]
call fcn.00417e08
mov dword [ebp - 0x20], 0x18461e70
mov dword [ebp - 0x18], 0
jmp 0x466fec
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18c]
mov dword [eax + ecx*4], 0xc15d0d65
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x466fd9
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x48]
jl 0x467031
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x18c]
mov eax, dword [eax]
dec dword [ebp - 0x20]
cmp ecx, eax
jg 0x467019
mov edx, edi
jmp 0x46701b
xor edx, edx
xor ecx, ecx
mov eax, dword [ebp - 0x18c]
cmp edx, dword [eax + 8]
setle cl
cmp ecx, dword [eax]
je 0x467031
xor eax, eax
jmp 0x467033
mov eax, edi
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x48], 0
je 0x467273
or ebx, 0xffffffff
mov dword [ebp - 0x38], ebx
push edi
lea ecx, [ebp - 0x414]
call fcn.00417e08
mov dword [ebp - 0x4c], 0xa2aafa0b
push 3
lea ecx, [ebp - 0x3fc]
call fcn.00417e08
movdqa xmm0, xmmword [0xa9c000]
movdqu xmmword [ebp - 0x9ec], xmm0
lea ecx, [ebp - 0x9ec]
lea eax, [ebp - 0x9dc]
push ecx
push eax
push ecx
lea ecx, [ebp - 0xb68]
call fcn.00417e7e
mov dword [ebp - 0x14], 0
jmp 0x4670ab
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x414]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x46709c
mov dword [ebp - 0x14], 0
jmp 0x4670cc
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x3fc]
mov dword [eax + ecx*4], 0xf914a126
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x4670b9
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
xor edx, edx
mov eax, dword [ebp - 0x18c]
cmp ecx, dword [eax]
setl dl
neg edx
jne 0x4670f2
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x34]
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0xfffffff8
jge 0x4671ce
mov dword [ebp - 0x28], 0x4461
cmp dword [ebp - 0x28], 0x44ff
jle 0x46717c
mov ecx, eax
mov dword [ebp - 0x20], ecx
jmp 0x467120
mov eax, dword [ebp - 0x3fc]
inc dword [eax + 8]
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x28], 0x40d2
jge 0x4671a0
mov dword [ebp - 0x38], 0x93e3674d
mov dword [ebp - 0x44], edi
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, 0xfffffff7
setne cl
xor edx, edx
cmp ecx, 0x10000
setg dl
mov eax, dword [ebp - 0x414]
mov dword [eax], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x18c]
mov dword [eax + 8], edi
xor eax, eax
cmp dword [ebp - 0x48], eax
je 0x46723d
mov dword [ebp - 0x2c], 3
cmp dword [ebp - 0x2c], eax
jl 0x467250
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x467250
mov dword [ebp - 0x28], 0x986a
dec dword [ebp - 0x28]
lea ecx, [ebp - 0x18c]
call fcn.004181c2
or ebx, 0xffffffff
mov dword [ebp - 0x28], ebx
push edi
lea ecx, [ebp - 0x42c]
call fcn.00417e08
mov dword [ebp - 0x14], 0
jmp 0x4672b0
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xc28], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x4672a3
mov dword [ebp - 0x14], 0
jmp 0x4672d2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x42c]
mov dword [eax + ecx*4], 0x41e55969
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4672bf
mov ecx, dword [ebp - 0x42c]
and dword [ecx], 0
mov eax, dword [ecx]
mov dword [ebp + eax*4 - 0xc28], ebx
inc dword [ecx]
cmp dword [ecx], 4
jl 0x4672e0
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x467315
push 0x1578
push eax
push 0x403
push 0x1db
push 0x43d
call dword [0xaaa07c]
lea ecx, [ebp - 0x42c]
call fcn.004181c2
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
xor eax, eax
cmp dword [ebp - 0x58], eax
jne 0x467332
cmp dword [ebp - 0x24], eax
je 0x467334
mov eax, edi
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], eax
dec dword [ebp - 0x24]
jmp 0x466cc3
mov dword [ebp - 0x14], 0x399841b3
push edi
lea ecx, [ebp - 0x334]
call fcn.00417e08
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x44], 0xed890fc5
mov dword [ebp - 0x28], 0x7ace
cmp dword [ebp - 0x28], 0x7d86
jle 0x4673a4
mov ebx, eax
mov esi, eax
mov eax, esi
xor eax, ebx
cdq
push edx
push eax
mov ecx, 0xaa71a0
call fcn.00417cc4
inc esi
cmp esi, 0xe5d
jl 0x46737b
inc ebx
cmp ebx, 0x4271
push 0
pop eax
jl 0x467379
or ebx, 0xffffffff
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x28], 0x7988
jge 0x4673c5
push 0xa99e04
push 0xaa71a0
call fcn.00419747
pop ecx
pop ecx
mov dword [ebp - 4], ebx
jmp 0x4673eb
xor eax, eax
mov dword [ebp - 0x54], 0x5ce
cmp dword [ebp - 0x54], 0x7f1
jle 0x467440
mov ebx, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x28], 0x708d
mov esi, eax
mov eax, ebx
and eax, esi
cdq
push edx
push eax
mov ecx, 0xaa71a0
call fcn.00417cc4
inc esi
cmp esi, 0x5fd2
jl 0x46740e
dec ebx
dec dword [ebp - 0x28]
push 0
pop eax
jne 0x46740c
mov ebx, dword [ebp - 0x3c]
inc ebx
mov dword [ebp - 0x3c], ebx
cmp ebx, 0x1b8b
jl 0x467402
mov dword [ebp - 0x14], 0
jmp 0x46745c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x334]
mov dword [eax + ecx*4], 0x102d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x467449
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x54], 0x3c4
jge 0x467482
push 0xa99e48
push 0xaa71a0
call fcn.00419747
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4674a9
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x4674c9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xbf0], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4674b4
xor eax, eax
mov dword [ebp - 0x14], 0xffffffe8
jmp 0x467550
mov dword [ebp - 0x2c], 0x48f69f7f
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x44], 0xd061a652
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], eax
jl 0x46754d
mov dword [ebp - 0x48], 0xfffffff8
mov dword [ebp - 0x18], eax
jmp 0x467508
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x1120], 0xd81479b6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x4674f7
mov esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x334]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x334]
mov eax, dword [eax + ecx*4]
mov dword [edx + esi*4], eax
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x48], 0x1b
jmp 0x46753f
mov dword [ebp - 0x28], 0
dec dword [ebp - 0x28]
dec dword [ebp - 0x48]
cmp dword [ebp - 0x48], 0xfffffff3
je 0x467532
dec dword [ebp - 0x2c]
push 0
pop eax
jns 0x4674eb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x17
jg 0x4674d2
lea ecx, [ebp - 0x334]
call fcn.004181c2
mov dword [ebp - 0x28], 0x32b4
cmp dword [ebp - 0x28], 0x3649
jle 0x4675ef
and dword [ebp - 0x48], 0
xor edx, edx
mov dword [ebp - 0x20], edx
xor eax, eax
mov dword [ebp - 0x18], eax
xor ebx, ebx
xor esi, esi
mov ecx, ebx
shl eax, cl
xor eax, edx
or eax, dword [ebp - 0x48]
cdq
push edx
push eax
lea ecx, [ebp - 0x1038]
call fcn.00401f5e
pop ecx
pop ecx
mov ecx, eax
call fcn.00417c99
push eax
call fcn.00484c7a
pop ecx
push esi
push edi
lea ecx, [ebp - 0x1038]
call fcn.004014ab
inc ebx
cmp ebx, 0x7118
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
jl 0x467587
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x750a
jl 0x467583
inc edx
mov dword [ebp - 0x20], edx
cmp edx, 0x5df4
jl 0x46757e
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x48], eax
cmp eax, 0x769
jl 0x467579
mov eax, dword [ebp - 0x444]
dec dword [eax + 8]
mov dword [ebp - 4], 0x1a
cmp dword [ebp - 0x28], 0x31d3
jge 0x467613
push 0xa99ea8
call fcn.00484c7a
pop ecx
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x46763e
lea ecx, [ebp - 0x444]
call fcn.004181c2
push 2
lea ecx, [ebp - 0x1d4]
call fcn.00417e08
mov dword [ebp - 0x14], 0x8d4081c2
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x14], 0
jmp 0x46767c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1d4]
mov dword [eax + ecx*4], 9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x467669
mov dword [ebp - 0x14], 0
jmp 0x46769c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xb80], 0x13923cc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x46768b
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x14], 0
jl 0x467727
mov dword [ebp - 0x4c], ebx
cmp dword [ebp - 0x14], 0
jne 0x4676d8
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1d4]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, dword [ecx + esi*4]
setl dl
mov eax, dword [ebp - 0x1d4]
cmp dword [eax], edx
jle 0x4676d8
and dword [ebp - 0x28], 0
jmp 0x4676db
mov dword [ebp - 0x28], edi
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
xor ecx, ecx
mov edx, dword [ebp - 0x1d4]
cmp dword [edx + eax*4], 0xb593
setl cl
xor ebx, ebx
cmp ecx, dword [ebp - 0x28]
setge bl
sub ebx, dword [edx + esi*4]
neg ebx
sbb ebx, ebx
inc ebx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1d4]
mov dword [eax + ecx*4], ebx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp ebx, eax
setl cl
mov dword [ebp - 0xb7c], ecx
dec dword [ebp - 0x14]
push 0xffffffffffffffff
pop ebx
jns 0x4676ab
lea ecx, [ebp - 0x1d4]
call fcn.004181c2
mov dword [ebp - 0x20], 0x971c
or ebx, 0xffffffff
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 0xfffffff6
push 3
lea ecx, [ebp - 0x2bc]
call fcn.00417e08
mov dword [ebp - 0x28], 7
push 2
lea ecx, [ebp - 0x45c]
call fcn.00417e08
mov dword [ebp - 0x28], 0x898d08f4
mov dword [ebp - 0x38], 3
mov dword [ebp - 0x40], 0
jmp 0x467791
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x2bc]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 3
jl 0x46777e
mov dword [ebp - 0x40], 0
jmp 0x4677b1
cmp dword [ebp - 0x40], 3
jl 0x4677a0