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

Disassembly:
mov eax, 0x4c421d
call fcn.004c34c8
push ecx
mov eax, 0x10d8
call fcn.004bfe70
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x68], dl
mov dword [ebp - 0x58], ecx
push 3
lea ecx, [ebp - 0x57c]
call fcn.0044ceac
mov dword [ebp - 0x48], 0x78df
xor eax, eax
cmp dword [ebp - 0x48], 0x7cb9
jle 0x462ef4
mov esi, eax
mov edi, eax
mov eax, esi
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
inc edi
cmp edi, 0x55e3
jl 0x462ecc
inc esi
cmp esi, 0x3e5b
push 0
pop eax
jl 0x462eca
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x462f18
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x57c]
mov dword [eax + ecx*4], 0xb110c93b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x462efd
xor eax, eax
mov dword [ebp - 4], eax
cmp dword [ebp - 0x48], 0x7548
jge 0x462f33
mov edx, 0xac15e4
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
xor eax, eax
mov dword [ebp - 0x48], 0x243c
cmp dword [ebp - 0x48], 0x24c9
jle 0x462f71
mov esi, eax
mov edi, eax
mov ebx, 0x6356
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
add edi, esi
dec ebx
jne 0x462f52
inc esi
cmp esi, 0x6725
push ebx
pop eax
jl 0x462f4b
mov eax, dword [ebp - 0x57c]
mov dword [eax + 4], 0x10
push 2
pop edi
mov dword [ebp - 4], edi
cmp dword [ebp - 0x48], 0x237c
jge 0x462f9c
mov edx, 0xac1620
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
jmp 0x462fdd
lea ecx, [ebp - 0x57c]
call fcn.0044cf7e
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x24], 0xfe1ca29
mov dword [ebp - 0x14], 0xe6d39c7c
push edi
lea ecx, [ebp - 0x478]
call fcn.0044ceac
mov dword [ebp - 0x14], 0
jmp 0x463025
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x478]
mov dword [eax + ecx*4], 0x5c29478c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x463012
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x24]
sub eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x24]
imul edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setge cl
imul ecx, ecx, 7
mov eax, dword [ebp - 0x478]
mov dword [eax + 4], ecx
mov dword [ebp - 0x24], 0
jmp 0x4630b7
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 0x48], 0x4ce10b49
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x478]
cmp dword [eax], ecx
setle dl
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x48]
xor ecx, ecx
cmp eax, 0xfffffffa
setl cl
mov dword [ebp - 0x14], ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x12
jg 0x46307c
lea ecx, [ebp - 0x478]
call fcn.0044cf7e
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x14], 0x8f01ba02
xor esi, esi
inc esi
push esi
lea ecx, [ebp - 0x4a8]
call fcn.0044ceac
mov dword [ebp - 0x3c], 0xb389fa18
mov dword [ebp - 0x14], 0xfffffff9
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x463117
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xb74], 0xfff7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x4630fe
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x463140
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x46313d
push 0x195f
push eax
push 0x310
push 0x94d
call dword [0xadd538]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x46311c
mov eax, dword [ebp - 0xb6c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x14], 0
jmp 0x46316a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4a8]
mov dword [eax + ecx*4], 0xdc1094d0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x463157
movdqa xmm0, xmmword [0xac93f0]
movdqu xmmword [ebp - 0xa9c], xmm0
lea ecx, [ebp - 0xa9c]
lea eax, [ebp - 0xa8c]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x690]
call fcn.0044cf58
mov dword [ebp - 0x2c], 0x51dba1dd
mov dword [ebp - 0x20], 0x2d505bc9
push edi
lea ecx, [ebp - 0x490]
call fcn.0044ceac
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x14], 0
jmp 0x4631d3
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x490]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4631c3
cmp dword [ebp - 0x2c], 0xfffffffc
sbb ecx, ecx
mov eax, dword [ebp - 0x690]
mov edx, dword [eax]
lea eax, [ecx + 0x30dd5e12]
xor ecx, ecx
cmp eax, edx
setne cl
cmp ecx, edx
jne 0x4631fa
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
sub eax, 0xa
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov eax, dword [ebp - 0x490]
cmp dword [eax], ecx
setne cl
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x490]
mov dword [eax], ecx
xor edx, edx
mov eax, dword [ebp - 0x690]
cmp dword [eax], ecx
setle dl
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x490]
call fcn.0044cf7e
lea ecx, [ebp - 0x690]
call fcn.0044cf7e
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xffffffff
xor eax, eax
cmp dword [ebp - 0x14], eax
je 0x4632b6
cmp dword [ebp - 0x18], eax
je 0x463286
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, eax
setne dl
cmp edx, 0xaf9d66de
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4a8]
mov dword [eax], ecx
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x18], eax
jg 0x4632b0
mov eax, dword [ebp - 0x4a8]
cmp dword [eax], 0
je 0x4632b4
mov eax, esi
jmp 0x4632b6
xor eax, eax
cmp dword [ebp - 0x18], eax
jne 0x4632be
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, eax
setge dl
xor ebx, ebx
cmp edx, 0xc30bca0b
setne bl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp ebx, eax
setg cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x3c], esi
lea ecx, [ebp - 0x4a8]
call fcn.0044cf7e
mov dword [ebp - 0x14], 0xc5a654fd
mov dword [ebp - 0x2c], 0xdb785b64
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0
jne 0x463323
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
xor eax, eax
cmp dword [ebp - 0x2c], eax
mov ecx, eax
je 0x463325
mov ecx, esi
mov eax, dword [ebp - 0x2c]
sub ecx, eax
imul eax, ecx, 0x3f46
inc eax
neg eax
sbb eax, eax
inc eax
push 0
pop eax
sets al
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x463353
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
jmp 0x46339e
mov dword [ebp - 0x3c], 0xffffffff
push edi
lea ecx, [ebp - 0x570]
call fcn.0044ceac
mov dword [ebp - 0x14], 0
jmp 0x463382
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x570]
mov dword [eax + ecx*4], 0x7356a0b3
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x46336f
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x570]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x570]
call fcn.0044cf7e
mov dword [ebp - 0x14], 0xfffffff9
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 3
jge 0x4633c9
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x380], 0xec0ae971
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x4633b0
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jge 0x4633e6
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x5c], 0x136951ad
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x4633d1
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edi
jge 0x463406
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x168], 0x87c5c6a8
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x4633ee
xor eax, eax
mov dword [ebp - 0x5c], eax
jmp 0x463454
mov dword [ebp - 0x18], 0xf47a6d
mov dword [ebp - 0x18], eax
jmp 0x46342d
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x46342a
push eax
push eax
call dword [0xadd48c]
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jle 0x463417
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jg 0x463451
mov eax, dword [ebp - 0x5c]
cmp dword [ebp + eax*4 - 0x380], 0
jne 0x46344f
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jle 0x46343a
xor eax, eax
inc dword [ebp - 0x5c]
cmp dword [ebp - 0x5c], edi
jle 0x46340b
cmp dword [ebp - 0x378], eax
je 0x463524
mov ecx, dword [ebp - 0x5c]
sub ecx, dword [ebp - 0x5c]
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x5c]
sub ecx, eax
mov eax, dword [ebp - 0x5c]
sub ecx, eax
je 0x463486
cmp dword [ebp - 0x5c], 0
je 0x463486
mov edx, esi
jmp 0x463488
xor edx, edx
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
cmp edx, eax
setle cl
sub ecx, 0x5f19
je 0x4634a7
cmp dword [ebp - 0x168], 0
je 0x4634a7
mov ecx, esi
jmp 0x4634a9
xor ecx, ecx
mov eax, dword [ebp - 0x168]
xor edx, edx
cmp ecx, eax
sete dl
mov eax, dword [ebp - 0x168]
xor ecx, ecx
cmp edx, eax
setge cl
inc ecx
mov eax, dword [ebp - 0x5c]
imul ecx, eax
mov eax, dword [ebp - 0x14]
imul eax, ecx
test eax, eax
je 0x4634e2
xor eax, eax
cmp dword [ebp - 0x378], eax
je 0x4634e4
mov ecx, esi
jmp 0x4634e6
xor eax, eax
mov ecx, eax
cmp ecx, dword [ebp - 0x5c]
jle 0x4634f2
cmp dword [ebp - 0x14], eax
je 0x4634f2
mov eax, esi
xor ecx, ecx
push 9
pop ebx
cmp eax, ebx
sete cl
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x14]
add eax, ecx
jne 0x463509
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x378]
mov eax, dword [ebp - 0x37c]
cmp dword [ebp - 0x168], eax
jl 0x463529
mov edx, esi
jmp 0x46352d
push 9
pop ebx
jmp 0x46352b
xor eax, eax
mov edx, eax
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x168], ecx
push 3
lea ecx, [ebp - 0x798]
call fcn.0044ceac
mov dword [ebp - 0x14], 0
jmp 0x463566
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x798]
mov dword [eax + ecx*4], 0xb110c93b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x463553
mov eax, dword [ebp - 0x798]
mov dword [eax + 4], 0x10
lea ecx, [ebp - 0x798]
call fcn.0044cf7e
push 4
lea ecx, [ebp - 0x588]
call fcn.0044ceac
push esi
lea ecx, [ebp - 0x994]
call fcn.0044ceac
mov dword [ebp - 0x14], 0x9b58331c
mov dword [ebp - 0x18], 0
jmp 0x4635bd
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x588]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x4635ad
mov dword [ebp - 0x18], 0
jmp 0x4635df
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x994]
mov dword [eax + ecx*4], 0xecf5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x4635cc
mov eax, dword [ebp - 0x588]
mov dword [eax + 8], 0x11
mov dword [ebp - 0x14], 0xffffffee
jmp 0x46361e
mov byte [ebp - 0x19], 0
cmp byte [ebp - 0x19], 0
je 0x46361b
push 0
push 0x67d
push 0x8b1
push 0xe3f
call dword [0xadd104]
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffe5
je 0x4635fa
lea ecx, [ebp - 0x994]
call fcn.0044cf7e
lea ecx, [ebp - 0x588]
call fcn.0044cf7e
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
push esi
lea ecx, [ebp - 0x2dc]
call fcn.0044ceac
mov dword [ebp - 0x48], 7
mov dword [ebp - 0x14], 0x2d34caa8
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x14], 0
jmp 0x46367b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2dc]
mov dword [eax + ecx*4], 0xd21dfe4b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x463668
mov eax, dword [ebp - 0x2dc]
mov ecx, esi
sub ecx, dword [eax]
imul ecx, dword [eax]
cmp ecx, 0xb1c03809
sbb eax, eax
neg eax
mov dword [ebp - 0x48], eax
je 0x4636a6
cmp dword [ebp - 0x48], 0
je 0x4636a6
mov ecx, esi
jmp 0x4636a8
xor ecx, ecx
mov dword [ebp - 0x48], 0x891f782a
xor eax, eax
cmp ecx, esi
setne al
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov eax, dword [ebp - 0x2dc]
cmp ecx, dword [eax]
setl dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
sete cl
mov eax, dword [ebp - 0x2dc]
imul ecx, dword [eax]
mov dword [eax], ecx
xor eax, eax
test ecx, ecx
sete al
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x14], 0xffffffe9
jmp 0x4636fd
mov dword [ebp - 0x3c], ebx
cmp dword [ebp - 0x3c], 0
jne 0x463702
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jne 0x4636f1
lea ecx, [ebp - 0x2dc]
call fcn.0044cf7e
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x48], 0x6cac
cmp dword [ebp - 0x48], 0x6e93
jle 0x463751
xor esi, esi
xor edi, edi
mov eax, edi
or eax, esi
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
inc edi
cmp edi, 0x53a3
jl 0x463728
inc esi
cmp esi, 0x6198
jl 0x463726
xor esi, esi
inc esi
push 2
pop edi
mov dword [ebp - 0x18], 4
mov dword [ebp - 4], 4
cmp dword [ebp - 0x48], 0x6b93
jge 0x463777
mov edx, 0xac1678
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x4637a5
mov dword [ebp - 0x40], 0x78fa
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x4637cc
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x8d4], 0xde0bcd8c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4637b4
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jg 0x4638de
mov dword [ebp - 0x48], 0x5173
cmp dword [ebp - 0x48], 0x5464
jle 0x46384d
mov esi, eax
mov edi, eax
lea eax, [edi + esi]
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
inc edi
cmp edi, 0x6f96
jl 0x4637ec
inc esi
cmp esi, 0x777c
push 0
pop eax
jl 0x4637ea
push eax
push 0xb
push 0x2608
push 0x1e8a
push 0x1702
push 0x11b
push 0x827
push 0xfd2
push 0x534
push 0x2421
push 0x259a
call dword [0xadd0c4]
xor esi, esi
inc esi
push 2
pop edi
mov dword [ebp - 0x14], 0x10b999fb
mov dword [ebp - 4], 6
cmp dword [ebp - 0x48], 0x4ef1
jge 0x463873
mov edx, 0xac16f8
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x4638a1
mov dword [ebp - 0x14], eax
jmp 0x4638c5
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x4638c2
push 0x20ec
push 0xd34
push eax
call dword [0xadd4c8]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jle 0x4638a6
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x8d4], esi
inc dword [ebp - 0x18]
xor eax, eax
jmp 0x4637cf
mov dword [ebp - 0x18], edi
jmp 0x46391a
mov dword [ebp - 0x14], 0xad9bacc5
mov dword [ebp - 0x40], 0xffcf33f2
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x40], 0x348f4a8f
mov dword [ebp - 0x14], eax
jmp 0x463911
mov dword [ebp - 0x48], 0x329ef4a0
inc dword [ebp - 0x48]
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffff
jle 0x463904
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xf
jge 0x4638e3
mov dword [ebp - 0x14], 0x8f01ba02
mov dword [ebp - 0x24], 0xfe1ca29
mov dword [ebp - 0x14], 0xe6d39c7c
push edi
lea ecx, [ebp - 0x4c0]
call fcn.0044ceac
mov dword [ebp - 0x14], 0
jmp 0x46395d
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4c0]
mov dword [eax + ecx*4], 0x5c29478c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x46394a
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x24]
sub eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x24]
imul edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setge cl
imul ecx, ecx, 7
mov eax, dword [ebp - 0x4c0]
mov dword [eax + 4], ecx
mov dword [ebp - 0x24], 0
jmp 0x4639ef
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 0x48], 0x4ce10b49
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x4c0]
cmp dword [eax], ecx
setle dl
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x48]
xor ecx, ecx
cmp eax, 0xfffffffa
setl cl
mov dword [ebp - 0x14], ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x12
jg 0x4639b4
lea ecx, [ebp - 0x4c0]
call fcn.0044cf7e
push esi
lea ecx, [ebp - 0x4d8]
call fcn.0044ceac
mov dword [ebp - 0x14], 0xfffffff9
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x463a37
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xb8c], 0xfff7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x463a1e
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x463a60
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x463a5d
push 0x195f
push eax
push 0x310
push 0x94d
call dword [0xadd538]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x463a3c
mov eax, dword [ebp - 0xb84]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x3c], 0xb389fa18
movdqa xmm0, xmmword [0xac93f0]
movdqu xmmword [ebp - 0xa1c], xmm0
lea ecx, [ebp - 0xa1c]
lea eax, [ebp - 0xa0c]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x6a8]
call fcn.0044cf58
mov dword [ebp - 0x2c], 0x51dba1dd
mov dword [ebp - 0x20], 0x2d505bc9
mov dword [ebp - 0x44], 0x72f1
cmp dword [ebp - 0x44], 0x7349
jle 0x463b1e
xor eax, eax
mov dword [ebp - 0x20], eax
xor ebx, ebx
mov dword [ebp - 0x48], ebx
xor esi, esi
xor edi, edi
add eax, ebx
mov dword [ebp - 0x3c], eax
mov ecx, esi
mov ebx, eax
sar ebx, cl
mov eax, ebx
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
inc edi
cmp edi, 0x22dc
jl 0x463ad6
inc esi
cmp esi, 0x6d62
mov ebx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x20]
jl 0x463ac9
inc ebx
mov dword [ebp - 0x48], ebx
cmp ebx, 0x6cd4
jl 0x463ac7
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x1810
jl 0x463ac2
xor esi, esi
inc esi
push 2
pop edi
push edi
lea ecx, [ebp - 0x40c]
call fcn.0044ceac
mov dword [ebp - 4], 8
cmp dword [ebp - 0x44], 0x6fbd
jge 0x463b49
mov edx, 0xac1744
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x463b77
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x14], eax
jmp 0x463b93
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40c]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x463b83
cmp dword [ebp - 0x2c], 0xfffffffc
sbb ecx, ecx
mov eax, dword [ebp - 0x6a8]
mov edx, dword [eax]
lea eax, [ecx + 0x30dd5e12]
xor ecx, ecx
cmp eax, edx
setne cl
cmp ecx, edx
jne 0x463bba
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
sub eax, 0xa
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov eax, dword [ebp - 0x40c]
cmp dword [eax], ecx
setne cl
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x40c]
mov dword [eax], ecx
xor edx, edx
mov eax, dword [ebp - 0x6a8]
cmp dword [eax], ecx
setle dl
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x40c]
call fcn.0044cf7e
lea ecx, [ebp - 0x6a8]
call fcn.0044cf7e
mov dword [ebp - 0x50], 0x754b
mov dword [ebp - 0x34], 0xac175c
cmp dword [ebp - 0x50], 0x791e
jle 0x463c9b
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x48], 0x63a3
xor esi, esi
mov eax, esi
and eax, edi
xor eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xd08]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0044cd8c
push eax
call fcn.004add27
pop ecx
push 0
push 1
lea ecx, [ebp - 0xd08]
call fcn.0044d288
inc esi
cmp esi, 0xb06
jl 0x463c3b
dec edi
dec dword [ebp - 0x48]
jne 0x463c39
mov edi, dword [ebp - 0x44]
inc edi
mov dword [ebp - 0x44], edi
cmp edi, 0x47e
jl 0x463c2f
inc ebx
cmp ebx, 0x7d6b
jl 0x463c2a
xor esi, esi
inc esi
push 2
pop edi
mov dword [ebp - 0x14], 0xfffffff9
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 3
jge 0x463cc6
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x334], 0xec0ae971
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x463cad
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], esi
jge 0x463ce3
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x64], 0x136951ad
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x463cce
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edi
jge 0x463d03
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x144], 0x87c5c6a8
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x463ceb
xor eax, eax
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], edi
jg 0x463e99
mov dword [ebp - 0x48], 0x7bea
cmp dword [ebp - 0x48], 0x7d35
jle 0x463d6a
mov ebx, eax
mov esi, eax
mov edi, eax
mov eax, esi
mov ecx, edi
shl eax, cl
and eax, ebx
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
inc edi
cmp edi, 0x178e
jl 0x463d25
inc esi
cmp esi, 0x576f
push 0
pop eax
jl 0x463d23
inc ebx
cmp ebx, 0x1fe7
jl 0x463d21
push 0x1d34
push eax
call dword [0xadd2c4]
xor esi, esi
inc esi
push 2
pop edi
mov dword [ebp - 0x30], 0xf47a6d
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x48], 0x78f9
jge 0x463d90
mov edx, 0xac1788
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x463dbe
mov dword [ebp - 0x30], eax
jmp 0x463dd9
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x463dd6
push eax
push eax
call dword [0xadd48c]
xor eax, eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edi
jle 0x463dc3
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], edi
jg 0x463e8f
mov dword [ebp - 0x48], 0x1735
cmp dword [ebp - 0x48], 0x1a96
jle 0x463e2f
mov esi, eax
mov edi, esi
mov ebx, 0x6659
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xada438
call fcn.0044cd97
dec edi
dec ebx
jne 0x463e03
inc esi
cmp esi, 0x5a87
jl 0x463dfc
xor eax, eax
push eax
push eax
call dword [0xadd258]
xor esi, esi
inc esi
push 2
pop edi
mov eax, dword [ebp - 0x64]
cmp dword [ebp + eax*4 - 0x334], 0
jne 0x463e8f
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x48], 0x1675
jge 0x463e5b
mov edx, 0xac17cc
mov ecx, 0xada438
call fcn.0044e73d
or dword [ebp - 4], 0xffffffff
jmp 0x463e85
inc dword [ebp - 0x30]
xor eax, eax
jmp 0x463de1
inc dword [ebp - 0x64]
xor eax, eax
jmp 0x463d06
cmp dword [ebp - 0x32c], eax
je 0x463f68
mov ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x64]
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x64]
sub ecx, eax
mov eax, dword [ebp - 0x64]
sub ecx, eax
je 0x463ec6
cmp dword [ebp - 0x64], 0
je 0x463ec6
mov edx, esi
jmp 0x463ec8
xor edx, edx
mov eax, dword [ebp - 0x64]
xor ecx, ecx
cmp edx, eax
setle cl
sub ecx, 0x5f19
je 0x463ee7
cmp dword [ebp - 0x144], 0
je 0x463ee7
mov ecx, esi
jmp 0x463ee9
xor ecx, ecx
mov eax, dword [ebp - 0x144]
xor edx, edx
cmp ecx, eax
sete dl
mov eax, dword [ebp - 0x144]
xor ecx, ecx
cmp edx, eax
setge cl
inc ecx
mov eax, dword [ebp - 0x64]
imul ecx, eax
mov eax, dword [ebp - 0x14]
imul eax, ecx
test eax, eax
je 0x463f22
xor eax, eax
cmp dword [ebp - 0x32c], eax
je 0x463f24
mov ecx, esi
jmp 0x463f26
xor eax, eax
mov ecx, eax
cmp ecx, dword [ebp - 0x64]
jle 0x463f32
cmp dword [ebp - 0x14], eax
je 0x463f32
mov eax, esi
xor ecx, ecx
push 9
pop ebx
cmp eax, ebx
sete cl
mov dword [ebp - 0x64], ecx
mov eax, dword [ebp - 0x14]
add eax, ecx
jne 0x463f49
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x32c]
mov eax, dword [ebp - 0x330]
cmp dword [ebp - 0x144], eax
jl 0x463f64
mov edx, esi
jmp 0x463f6d
xor eax, eax
jmp 0x463f6b
push 9
pop ebx
mov edx, eax
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x144], ecx
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x50], 0x752f
jge 0x463f96
push dword [ebp - 0x34]
call fcn.004add27
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x463fc7
mov dword [ebp - 0x14], eax
jmp 0x463fdf
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4d8]
mov dword [eax + ecx*4], 0xdc1094d0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x463fcc
push 4
lea ecx, [ebp - 0x5a0]
call fcn.0044ceac
push esi
lea ecx, [ebp - 0x9ac]
call fcn.0044ceac
mov dword [ebp - 0x14], 0x9b58331c
mov dword [ebp - 0x18], 0
jmp 0x46401d
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x5a0]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x46400d
mov dword [ebp - 0x18], 0
jmp 0x46403f
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x9ac]
mov dword [eax + ecx*4], 0xecf5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x46402c
mov eax, dword [ebp - 0x5a0]
mov dword [eax + 8], 0x11
mov dword [ebp - 0x14], 0xffffffee
jmp 0x46407e
mov byte [ebp - 0x19], 0
cmp byte [ebp - 0x19], 0
je 0x46407b
push 0
push 0x67d
push 0x8b1
push 0xe3f
call dword [0xadd104]
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffe5
je 0x46405a
lea ecx, [ebp - 0x9ac]
call fcn.0044cf7e
lea ecx, [ebp - 0x5a0]
call fcn.0044cf7e
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x48], eax
push esi
lea ecx, [ebp - 0x2f4]
call fcn.0044ceac
mov dword [ebp - 0x48], 7
mov dword [ebp - 0x14], 0x2d34caa8
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x14], 0
jmp 0x4640dc
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2f4]
mov dword [eax + ecx*4], 0xd21dfe4b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x4640c9
mov eax, dword [ebp - 0x2f4]
mov ecx, esi
sub ecx, dword [eax]
imul ecx, dword [eax]
cmp ecx, 0xb1c03809
sbb eax, eax
neg eax
mov dword [ebp - 0x48], eax
je 0x464107
cmp dword [ebp - 0x48], 0
je 0x464107
mov ecx, esi
jmp 0x464109
xor ecx, ecx
mov dword [ebp - 0x48], 0x891f782a
xor eax, eax
cmp ecx, esi
setne al
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov eax, dword [ebp - 0x2f4]
cmp ecx, dword [eax]
setl dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
sete cl
mov eax, dword [ebp - 0x2f4]
imul ecx, dword [eax]
mov dword [eax], ecx
xor eax, eax
test ecx, ecx
sete al
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x14], 0xffffffe9
jmp 0x46415e
mov dword [ebp - 0x3c], ebx
cmp dword [ebp - 0x3c], 0
jne 0x464163
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jne 0x464152
lea ecx, [ebp - 0x2f4]
call fcn.0044cf7e
mov dword [ebp - 0x14], 0xffffffff
xor eax, eax
cmp dword [ebp - 0x14], eax
je 0x4641cd
cmp dword [ebp - 0x18], eax
je 0x46419d
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, eax
setne dl
cmp edx, 0xaf9d66de
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4d8]
mov dword [eax], ecx
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x18], eax
jg 0x4641c7
mov eax, dword [ebp - 0x4d8]
cmp dword [eax], 0
je 0x4641cb
mov eax, esi
jmp 0x4641cd
xor eax, eax
cmp dword [ebp - 0x18], eax
jne 0x4641d5
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, eax
setge dl
xor ebx, ebx
cmp edx, 0xc30bca0b
setne bl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp ebx, eax
setg cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x3c], esi
lea ecx, [ebp - 0x4d8]
call fcn.0044cf7e
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x14], 0x8f01ba02
push esi
lea ecx, [ebp - 0x4f0]
call fcn.0044ceac
mov dword [ebp - 0x3c], 0xb389fa18
mov dword [ebp - 0x14], 0
jmp 0x464252
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4f0]
mov dword [eax + ecx*4], 0xdc1094d0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x46423f
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xffffffff
xor eax, eax
cmp dword [ebp - 0x14], eax
je 0x4642bc
cmp dword [ebp - 0x18], eax
je 0x46428c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, eax
setne dl
cmp edx, 0xaf9d66de
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4f0]
mov dword [eax], ecx
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x18], eax
jg 0x4642b6
cmp dword [ebp - 0x18], eax
jne 0x4642c4
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, eax
setge dl
xor ebx, ebx
cmp edx, 0xc30bca0b
setne bl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp ebx, eax
setg cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x3c], esi
lea ecx, [ebp - 0x4f0]
call fcn.0044cf7e
movdqa xmm0, xmmword [0xac9380]
movdqu xmmword [ebp - 0xb1c], xmm0
lea ecx, [ebp - 0xb1c]
lea eax, [ebp - 0xb0c]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x5b8]
call fcn.0044cf58
mov dword [ebp - 0x40], 0xfffffff9
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x40], 0x2541
mov eax, dword [ebp - 0x5b8]
and dword [eax], 0
push edi
lea ecx, [ebp - 0x738]
call fcn.0044ceac
xor eax, eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x14], eax
jmp 0x464369