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

Disassembly:
mov eax, 0x4c242d
call fcn.004c11b8
push ecx
mov eax, 0x1128
call fcn.004bdb60
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x60], dl
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x50], 3
mov dword [ebp - 0x34], 0x5a63a74a
mov dword [ebp - 0x34], 0xc80f219a
mov dword [ebp - 0x34], 0xfb8ceffb
mov dword [ebp - 0x34], 0xa8e
cmp dword [ebp - 0x34], 0xb8f
jle 0x492181
push 0
call dword [0xab5444]
xor esi, esi
xor edi, edi
mov ebx, 0x3c87
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xd64]
call fcn.00401a48
pop ecx
pop ecx
mov ecx, eax
call fcn.00408fc8
push eax
call fcn.004aba17
pop ecx
push 0
push 1
lea ecx, [ebp - 0xd64]
call fcn.004097a9
add edi, esi
dec ebx
jne 0x492144
inc esi
cmp esi, 0x66f3
jl 0x49213d
xor edi, edi
inc edi
push edi
lea ecx, [ebp - 0x758]
call fcn.004091fb
and dword [ebp - 4], 0
cmp dword [ebp - 0x34], 0x93c
jge 0x4921a8
push 0xa9de70
call fcn.004aba17
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
jmp 0x4921d3
push 3
lea ecx, [ebp - 0x740]
call fcn.004091fb
mov dword [ebp - 0x34], 0xe318b474
mov dword [ebp - 0x18], 0
jmp 0x492203
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x758]
mov dword [eax + ecx*4], 0x790660d6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x4921f0
mov dword [ebp - 0x18], 0
jmp 0x492224
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x740]
mov dword [eax + ecx*4], 0x1b16eb2d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x492211
mov dword [ebp - 0x18], 0
jmp 0x492244
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb98], 0x6b5a7dd9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x492233
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
imul eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x50]
jle 0x492269
cmp dword [ebp - 0x50], 0
je 0x492269
mov eax, edi
jmp 0x49226b
xor eax, eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], edi
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x50]
xor edx, edx
cmp eax, ecx
setl dl
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x758]
mov dword [eax], ecx
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x740]
mov edx, dword [eax]
xor ecx, ecx
cmp edx, dword [eax + 4]
setne cl
xor ebx, ebx
cmp ecx, edx
setg bl
mov eax, dword [ebp - 0x50]
xor ecx, ecx
cmp eax, ebx
setge cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xb98], eax
lea ecx, [ebp - 0x740]
call fcn.004092cd
lea ecx, [ebp - 0x758]
call fcn.004092cd
mov dword [ebp - 0x4c], esi
push 4
lea ecx, [ebp - 0x770]
call fcn.004091fb
mov dword [ebp - 0x24], 0
jmp 0x492304
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x770]
mov dword [eax + ecx*4], 0x2b57e8b7
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x4922f1
mov dword [ebp - 0x4c], 0xfffffff0
jmp 0x492353
mov dword [ebp - 0x24], 0
jmp 0x49232a
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x68], 0xedc7555b
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x49231c
mov dword [ebp - 0x68], 0
jmp 0x49234a
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x770]
cmp dword [eax + ecx*4], 0
jne 0x492350
inc dword [ebp - 0x68]
cmp dword [ebp - 0x68], 3
jle 0x492338
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xffffffec
jne 0x492313
lea ecx, [ebp - 0x770]
call fcn.004092cd
mov dword [ebp - 0x50], 3
mov dword [ebp - 0x4c], 0xe0a8eac8
mov dword [ebp - 0x20], 0xef6b8f3d
mov dword [ebp - 0x20], 0x90d29729
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x38], 0x5e12
cmp dword [ebp - 0x38], 0x602e
jle 0x4923df
xor esi, esi
mov dword [ebp - 0x30], esi
xor edi, edi
mov dword [ebp - 0x34], 0x6064
mov ebx, edi
mov esi, 0x4f0c
mov eax, ebx
cdq
push edx
push eax
mov ecx, 0xab2098
call fcn.00408fd3
inc ebx
dec esi
jne 0x4923a8
mov esi, dword [ebp - 0x30]
add edi, esi
dec dword [ebp - 0x34]
jne 0x4923a1
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x7eed
jl 0x492398
push 0
call dword [0xab5048]
xor edi, edi
inc edi
or esi, 0xffffffff
mov dword [ebp - 4], 2
cmp dword [ebp - 0x38], 0x5b35
jge 0x4923fe
mov edx, 0xa9deb8
mov ecx, 0xab2098
call fcn.0040b859
mov dword [ebp - 4], esi
jmp 0x492424
push edi
lea ecx, [ebp - 0x788]
call fcn.004091fb
mov dword [ebp - 0x18], 0
jmp 0x49244a
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc80], 0
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x492439
mov dword [ebp - 0x34], 0x466b
cmp dword [ebp - 0x34], 0x46b0
jle 0x492499
xor edi, edi
xor esi, esi
xor ebx, ebx
mov eax, esi
mov ecx, ebx
sar eax, cl
or eax, edi
cdq
push edx
push eax
mov ecx, 0xab2098
call fcn.00408fd3
inc ebx
cmp ebx, 0x1d78
jl 0x492466
inc esi
cmp esi, 0x4ba2
jl 0x492464
inc edi
cmp edi, 0x3451
jl 0x492462
xor edi, edi
inc edi
mov dword [ebp - 0x18], 0
jmp 0x4924b5
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x788]
mov dword [eax + ecx*4], 0x85a7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x4924a2
mov dword [ebp - 4], 4
cmp dword [ebp - 0x34], 0x443e
jge 0x4924d9
mov edx, 0xa9df0c
mov ecx, 0xab2098
call fcn.0040b859
or esi, 0xffffffff
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x492508
mov dword [ebp - 0x4c], eax
jmp 0x492532
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], 0xffffffe3
jmp 0x492529
mov dword [ebp - 0x34], 0x47597a61
inc dword [ebp - 0x34]
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xfffffffd
jl 0x49251c
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xfffffff7
jne 0x49250d
mov eax, dword [ebp - 0x788]
inc dword [eax]
lea ecx, [ebp - 0x788]
call fcn.004092cd
mov dword [ebp - 0x34], 0x5a63a74a
mov dword [ebp - 0x34], 0xc80f219a
mov dword [ebp - 0x34], 0xfb8ceffb
push edi
lea ecx, [ebp - 0x704]
call fcn.004091fb
push 3
lea ecx, [ebp - 0x7a0]
call fcn.004091fb
mov dword [ebp - 0x34], 0xe318b474
mov dword [ebp - 0x18], 0
jmp 0x49259c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x704]
mov dword [eax + ecx*4], 0x790660d6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x492589
mov dword [ebp - 0x18], 0
jmp 0x4925bd
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x7a0]
mov dword [eax + ecx*4], 0x1b16eb2d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4925aa
mov dword [ebp - 0x18], 0
jmp 0x4925dd
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xbb0], 0x6b5a7dd9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4925cc
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
imul eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x50]
jle 0x492602
cmp dword [ebp - 0x50], 0
je 0x492602
mov eax, edi
jmp 0x492604
xor eax, eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], edi
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x50]
xor edx, edx
cmp eax, ecx
setl dl
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x704]
mov dword [eax], ecx
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x7a0]
mov edx, dword [eax]
xor ecx, ecx
cmp edx, dword [eax + 4]
setne cl
xor ebx, ebx
cmp ecx, edx
setg bl
mov eax, dword [ebp - 0x50]
xor ecx, ecx
cmp eax, ebx
setge cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xbb0], eax
lea ecx, [ebp - 0x7a0]
call fcn.004092cd
lea ecx, [ebp - 0x704]
call fcn.004092cd
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x44], 0x315362da
mov dword [ebp - 0x40], 0x1637c1d6
push 2
pop ebx
push ebx
lea ecx, [ebp - 0x230]
call fcn.004091fb
mov dword [ebp - 0x38], 0x66c4a87f
mov dword [ebp - 0x1c], 0x112def90
mov dword [ebp - 0x20], 0xe619
mov dword [ebp - 0x24], 0
jmp 0x4926c6
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x230]
mov dword [eax + ecx*4], 0x7d0b0a35
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jl 0x4926b3
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x40]
add ecx, dword [ebp - 0x44]
add ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x230]
mov dword [eax], ecx
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
sub edx, dword [ebp - 0x38]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, 0x1dba
setge cl
sub ecx, 0x99244325
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, edx
setne al
mov dword [ebp - 0x1c], eax
xor eax, eax
cmp dword [ebp - 0x38], eax
jne 0x492720
cmp dword [ebp - 0x40], eax
mov ecx, eax
je 0x492722
mov ecx, edi
mov eax, dword [ebp - 0x230]
mov dword [eax], ecx
xor edx, edx
cmp ecx, 0xbd0d
setne dl
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, edi
sbb eax, eax
neg eax
sub eax, dword [ebp - 0x4c]
neg eax
sbb eax, eax
inc eax
imul eax, eax, 6
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x3c], 7
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x34], 0x8991cd3c
mov dword [ebp - 0x30], edi
push 3
lea ecx, [ebp - 0x728]
call fcn.004091fb
mov dword [ebp - 0x24], 0
jmp 0x492790
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x728]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x492781
mov eax, dword [ebp - 0x3c]
neg eax
je 0x4927d7
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x3c]
add ecx, eax
mov eax, dword [ebp - 0x230]
mov dword [eax], ecx
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x44]
mov ecx, 0x32c8
sub ecx, eax
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x34], ecx
je 0x4927d7
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
xor eax, eax
cmp dword [ebp - 0x34], eax
jne 0x4927e6
cmp dword [ebp - 0x3c], eax
je 0x4927e8
mov eax, edi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0x58]
neg eax
sbb eax, eax
inc eax
add eax, dword [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
push 8
pop ecx
cmp ecx, eax
sbb eax, eax
neg eax
xor ecx, ecx
cmp eax, 0x3ffcd553
setne cl
xor edx, edx
cmp ecx, 0x87e91c17
setne dl
imul edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x728]
mov dword [eax], edx
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x492845
push eax
push 0x499
push eax
push 0x3dc
call dword [0xab5098]
lea ecx, [ebp - 0x728]
call fcn.004092cd
lea ecx, [ebp - 0x230]
call fcn.004092cd
mov dword [ebp - 0x3c], 9
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x3c], 0
cmp dword [ebp - 0x3c], 0xffffffe8
je 0x492979
mov dword [ebp - 0x2c], 0xeb90
mov dword [ebp - 0x20], 0xfffffffb
mov dword [ebp - 0x54], 0x911
cmp dword [ebp - 0x54], 0xcbc
jle 0x492922
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x30], 0x781c
xor esi, esi
mov dword [ebp - 0x34], esi
xor edi, edi
lea eax, [ebx + esi]
mov dword [ebp - 0x20], eax
mov ebx, eax
mov eax, ebx
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xd94]
call fcn.00401a48
pop ecx
pop ecx
mov ecx, eax
call fcn.00408fc8
push eax
call fcn.004aba17
pop ecx
push 0
push 1
lea ecx, [ebp - 0xd94]
call fcn.004097a9
inc edi
cmp edi, 0x3a6f
jl 0x4928b6
mov esi, dword [ebp - 0x34]
inc esi
mov dword [ebp - 0x34], esi
cmp esi, 0x3114
mov ebx, dword [ebp - 0x38]
jl 0x4928ac
dec ebx
mov dword [ebp - 0x38], ebx
dec dword [ebp - 0x30]
jne 0x4928a7
mov ebx, dword [ebp - 0x1c]
inc ebx
mov dword [ebp - 0x1c], ebx
cmp ebx, 0x72f8
jl 0x49289d
xor edi, edi
inc edi
push 2
pop ebx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 6
cmp dword [ebp - 0x54], 0x63c
jge 0x492943
push 0xa9df38
call fcn.004aba17
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
jmp 0x492971
dec dword [ebp - 0x3c]
jmp 0x49286c
mov dword [ebp - 0x3c], 0
cmp dword [ebp - 0x3c], 0xfffffff2
jne 0x492aa6
movdqa xmm0, xmmword [0xaa0ad0]
movdqu xmmword [ebp - 0xa80], xmm0
lea ecx, [ebp - 0xa80]
lea eax, [ebp - 0xa70]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x4dc]
call fcn.004092a7
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x38], 0xd2d
cmp dword [ebp - 0x38], 0x10c5
jle 0x492a42
mov edi, eax
mov dword [ebp - 0x30], edi
jmp 0x4929d2
xor eax, eax
mov esi, eax
mov dword [ebp - 0x34], esi
jmp 0x4929db
xor eax, eax
mov ebx, eax
mov dword [ebp - 0x20], edi
mov ecx, esi
sar edi, cl
mov eax, edi
xor eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0x10ac]
call fcn.00401a48
pop ecx
pop ecx
mov ecx, eax
call fcn.00408fc8
push eax
call fcn.004aba17
pop ecx
push 0
push 1
lea ecx, [ebp - 0x10ac]
call fcn.004097a9
inc ebx
cmp ebx, 0x4c09
jl 0x4929e4
mov esi, dword [ebp - 0x34]
inc esi
mov dword [ebp - 0x34], esi
cmp esi, 0x32b
mov edi, dword [ebp - 0x30]
jl 0x4929d9
inc edi
mov dword [ebp - 0x30], edi
cmp edi, 0x7f3
jl 0x4929d0
xor edi, edi
inc edi
push 2
pop ebx
mov dword [ebp - 0x20], 5
mov dword [ebp - 4], 8
cmp dword [ebp - 0x38], 0xacb
jge 0x492a64
push 0xa9df84
call fcn.004aba17
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x492a96
lea ecx, [ebp - 0x4dc]
cmp dword [ebp - 0x3c], eax
je 0x492ac2
call fcn.004092cd
push edi
lea ecx, [ebp - 0x430]
call fcn.004091fb
mov dword [ebp - 0x34], 0x65925ef2
mov dword [ebp - 0x18], 0
jmp 0x492ae9
mov eax, dword [ebp - 0x4dc]
and dword [eax], 0
call fcn.004092cd
dec dword [ebp - 0x3c]
jmp 0x492980
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xff8], 0xfffffffb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x492ad8
mov dword [ebp - 0x18], 0
jmp 0x492b08
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x430]
and dword [eax + ecx*4], 0
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x492af8
mov eax, dword [ebp - 0x430]
mov dword [eax], ebx
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x20], 0xfffffffd
mov dword [ebp - 0x20], esi
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x430]
dec dword [eax]
jns 0x492b15
lea ecx, [ebp - 0x430]
call fcn.004092cd
mov dword [ebp - 0x28], 3
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x44], 0xec93cc25
mov dword [ebp - 0x20], 0x356a0b34
mov dword [ebp - 0x20], 0xa47cdedf
push 4
lea ecx, [ebp - 0x698]
call fcn.004091fb
mov dword [ebp - 0x34], 0x29ac
cmp dword [ebp - 0x34], 0x29f3
jle 0x492bec
xor eax, eax
push eax
push 0x8d4
push eax
push eax
push 0x36b
push 0x2413
push 0x2334
push 0x4dd
call dword [0xab50a0]
xor esi, esi
xor edi, edi
mov eax, edi
and eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xdc4]
call fcn.00401a48
pop ecx
pop ecx
mov ecx, eax
call fcn.00408fc8
push eax
call fcn.004aba17
pop ecx
push 0
push 1
lea ecx, [ebp - 0xdc4]
call fcn.004097a9
inc edi
cmp edi, 0x4321
jl 0x492ba3
inc esi
cmp esi, 0x637f
jl 0x492ba1
xor edi, edi
inc edi
or esi, 0xffffffff
mov dword [ebp - 0x24], 0
jmp 0x492c08
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x698]
mov dword [eax + ecx*4], 0x3dd61fb9
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x492bf5
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x34], 0x2885
jge 0x492c29
push 0xa9dfa0
call fcn.004aba17
pop ecx
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x492c55
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], eax
jge 0x492d3c
mov dword [ebp - 0x58], 0xfffffff7
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x2c], 0x478c38ec
mov dword [ebp - 0x2c], 0xd8ef068c
mov dword [ebp - 0x58], eax
jmp 0x492d29
mov dword [ebp - 0x38], 0x21591249
mov dword [ebp - 0x2c], 0x2d1a4e66
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x2c], 0x38e486ae
mov dword [ebp - 0x1c], 0x6fc2
mov dword [ebp - 0x2c], 0x2f92e6c0
cmp dword [ebp - 0x38], eax
je 0x492d0a
mov dword [ebp - 0x34], 0xfffffffd
dec dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
xor eax, eax
cmp dword [ebp - 0x38], eax
jne 0x492cd1
cmp eax, dword [ebp - 0x34]
je 0x492cd8
mov eax, edi
cmp eax, dword [ebp - 0x34]
jl 0x492cdb
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x44], 0
jmp 0x492d02
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x698]
cmp dword [eax + ecx*4], 0
jne 0x492d24
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], 3
jle 0x492cf0
jmp 0x492d24
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x492d26
push 0x2543
push 0xb49
push eax
call dword [0xab5588]
xor eax, eax
dec dword [ebp - 0x58]
cmp dword [ebp - 0x58], 0xfffffff8
jl 0x492c81
inc dword [ebp - 0x40]
js 0x492c61
lea ecx, [ebp - 0x698]
call fcn.004092cd
mov dword [ebp - 0x34], 0x5a63a74a
mov dword [ebp - 0x24], 9
mov dword [ebp - 0x1c], 0x45c
cmp dword [ebp - 0x1c], 0x78d
jle 0x492de3
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x30], esi
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], 0x61a4
xor edi, edi
mov esi, dword [ebp - 0x38]
lea ecx, [esi + edi]
mov eax, ebx
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xf74]
call fcn.00401a48
pop ecx
pop ecx
mov ecx, eax
call fcn.00408fc8
push eax
call fcn.004aba17
pop ecx
push 0
push 1
lea ecx, [ebp - 0xf74]
call fcn.004097a9
inc edi
cmp edi, 0x6fa2
jl 0x492d7d
mov esi, dword [ebp - 0x30]
add dword [ebp - 0x38], esi
dec dword [ebp - 0x34]
jne 0x492d78
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x5de8
jl 0x492d6c
inc ebx
cmp ebx, 0x6ccb
jl 0x492d67
call dword [0xab5280]
xor edi, edi
inc edi
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x1c], 0x283
jge 0x492dfe
push 0xa9dfd4
call fcn.004aba17
pop ecx
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
xor eax, eax
jmp 0x492e2d
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x2c], 0xd66b
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 4
jge 0x492e55
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x30c], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x492e40
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0xf
je 0x49302a
mov dword [ebp - 0x3c], 0xccce1e2c
mov dword [ebp - 0x34], 0xe9843c6b
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x11], al
mov dword [ebp - 0x34], 0x1d15
cmp dword [ebp - 0x34], 0x1e6e
jle 0x492ed3
mov esi, eax
mov edi, eax
mov eax, edi
and eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xc38]
call fcn.00401a48
pop ecx
pop ecx
mov ecx, eax
call fcn.00408fc8
push eax
call fcn.004aba17
pop ecx
push 0
push 1
lea ecx, [ebp - 0xc38]
call fcn.004097a9
inc edi
cmp edi, 0x1731
jl 0x492e8a
inc esi
cmp esi, 0x3d4c
push 0
pop eax
jl 0x492e88
xor edi, edi
inc edi
cmp byte [ebp - 0x11], 0
je 0x492ee0
push eax
call dword [0xab5394]
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x34], 0x1b87
jge 0x492efb
push 0xa9e008
call fcn.004aba17
pop ecx
mov dword [ebp - 4], ebx
xor eax, eax
jmp 0x492f27
mov dword [ebp - 0x3c], 3
cmp dword [ebp - 0x3c], eax
jl 0x493020
mov dword [ebp - 0x18], 0xe64f1479
mov dword [ebp - 0x18], 3
cmp dword [ebp - 0x18], eax
jl 0x493017
mov dword [ebp - 0x34], ebx
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x30c]
mov eax, dword [ebp - 0x308]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x20], eax
jne 0x492f6c
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x30c]
xor ecx, ecx
test eax, eax
sete cl
add ecx, 4
jne 0x492f85
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x30c]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0x9e6b
setle cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp + eax*4 - 0x30c]
mov eax, dword [ebp - 0x18]
add eax, 0x4c3e6
xor edx, edx
cmp eax, ecx
setge dl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, 7
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x30c]
xor ecx, ecx
cmp eax, edx
sete cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, 0x6d4c
setle cl
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setle dl
sub edx, 3
neg edx
sbb edx, edx
inc edx
imul edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], edx
dec dword [ebp - 0x18]
jns 0x492f4e
xor eax, eax
dec dword [ebp - 0x3c]
jns 0x492f37
inc dword [ebp - 0x24]
xor eax, eax
jmp 0x492e58
mov dword [ebp - 0x34], 0xc80f219a
mov dword [ebp - 0x34], 0xfb8ceffb
push edi
lea ecx, [ebp - 0x71c]
call fcn.004091fb
mov dword [ebp - 0x4c], ebx
push 4
lea ecx, [ebp - 0x4f4]
call fcn.004091fb
mov dword [ebp - 0x24], 0
jmp 0x493070
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x4f4]
mov dword [eax + ecx*4], 0x2b57e8b7
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x49305d
mov dword [ebp - 0x4c], 0xfffffff0
jmp 0x4930bf
mov dword [ebp - 0x24], 0
jmp 0x493096
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x64], 0xedc7555b
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x493088
mov dword [ebp - 0x64], 0
jmp 0x4930b6
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x4f4]
cmp dword [eax + ecx*4], 0
jne 0x4930bc
inc dword [ebp - 0x64]
cmp dword [ebp - 0x64], 3
jle 0x4930a4
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xffffffec
jne 0x49307f
lea ecx, [ebp - 0x4f4]
call fcn.004092cd
push 3
lea ecx, [ebp - 0x53c]
call fcn.004091fb
mov dword [ebp - 0x34], 0x6dc0
cmp dword [ebp - 0x34], 0x7028
jle 0x493117
xor edi, edi
xor esi, esi
mov eax, esi
or eax, edi
cdq
push edx
push eax
mov ecx, 0xab2098
call fcn.00408fd3
inc esi
cmp esi, 0x3f6
jl 0x4930f1
inc edi
cmp edi, 0x6e47
jl 0x4930ef
xor edi, edi
inc edi
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x34], 0x6c68
jge 0x493136
mov edx, 0xa9e050
mov ecx, 0xab2098
call fcn.0040b859
mov dword [ebp - 4], ebx
xor eax, eax
jmp 0x493162
mov dword [ebp - 0x4c], 0xe0a8eac8
mov dword [ebp - 0x34], 0x2b10
cmp dword [ebp - 0x34], 0x2e2f
jle 0x4931cc
mov esi, eax
mov edi, eax
lea eax, [edi + esi]
cdq
push edx
push eax
lea ecx, [ebp - 0x104c]
call fcn.00401a48
pop ecx
pop ecx
mov ecx, eax
call fcn.00408fc8
push eax
call fcn.004aba17
pop ecx
push 0
push 1
lea ecx, [ebp - 0x104c]
call fcn.004097a9
inc edi
cmp edi, 0x6096
jl 0x49317d
inc esi
xor eax, eax
cmp esi, 0x5785
jl 0x49317b
push eax
push eax
call dword [0xab503c]
xor edi, edi
inc edi
mov dword [ebp - 0x20], 0xef6b8f3d
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x34], 0x2776
jge 0x4931ee
push 0xa9e098
call fcn.004aba17
pop ecx
mov dword [ebp - 4], ebx
jmp 0x493216
mov dword [ebp - 0x20], 0x90d29729
mov dword [ebp - 0x20], ebx
push edi
lea ecx, [ebp - 0x674]
call fcn.004091fb
mov dword [ebp - 0x18], 0
jmp 0x493246
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xca4], 0
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x493235
mov dword [ebp - 0x18], 0
jmp 0x493268
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x674]
mov dword [eax + ecx*4], 0x85a7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x493255
mov dword [ebp - 0x4c], 0
jmp 0x49329b
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], 0xffffffe3
jmp 0x493292
mov dword [ebp - 0x34], 0x47597a61
inc dword [ebp - 0x34]
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xfffffffd
jl 0x493285
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xfffffff7
jne 0x493276
mov eax, dword [ebp - 0x674]
inc dword [eax]
lea ecx, [ebp - 0x674]
call fcn.004092cd
mov dword [ebp - 0x34], 0xe318b474
mov dword [ebp - 0x18], 0xfffffffa
push edi
lea ecx, [ebp - 0x240]
call fcn.004091fb
mov dword [ebp - 0x34], 0x31cd1ac8
push edi
lea ecx, [ebp - 0x400]
call fcn.004091fb
mov dword [ebp - 0x38], 0x7d239f94
mov dword [ebp - 0x494], 0x6042c8cd
mov dword [ebp - 0x490], 0x6042c8cd
mov dword [ebp - 0x48c], 0x6042c8cd
mov dword [ebp - 0x488], 0x6042c8cd
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x493334
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x240]
mov dword [eax + ecx*4], 0x69c93e32
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x49331a
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x493356
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x400]
mov dword [eax + ecx*4], 0xd1a0c8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x49333c
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x493374
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xbc8], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x49335f
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0xffffffee
jne 0x4934a6
lea esi, [ebp - 0xa20]
lea eax, [ebp - 0xa10]
mov dword [ebp - 0x1c], 0x6173
mov dword [ebp - 0x38], 0xe6b93388
movdqa xmm0, xmmword [0xaa0ae0]
movdqu xmmword [ebp - 0xa20], xmm0
push ecx
push eax
push esi
lea ecx, [ebp - 0x50c]
call fcn.004092a7
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x34], 0x360abed9
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x4933d6
push eax
call dword [0xab54ec]
xor eax, eax
cmp dword [ebp - 0x18], eax
jne 0x493433
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov ecx, 0x3cf68729
sub ecx, eax
mov eax, dword [ebp - 0x50c]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x240]
mov dword [eax], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x240]
cmp dword [eax], 0
je 0x493419
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x54]
cmp dword [ebp - 0x18], eax
jne 0x493428
xor eax, eax
cmp dword [ebp - 0x18], eax
je 0x49342a
mov eax, edi
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50c]
mov ecx, dword [eax + 4]
xor edx, edx
mov eax, dword [ebp - 0x400]
cmp ecx, dword [eax]
setl dl
mov eax, dword [ebp - 0x54]
add eax, edx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
sub eax, 0x75f07c6d
cmp eax, 0xf390197f
jbe 0x49347e
mov eax, dword [ebp - 0x240]
cmp dword [eax], 0
je 0x49347e
mov eax, edi
jmp 0x493480
xor eax, eax
mov dword [ebp - 0x494], eax
lea ecx, [ebp - 0x50c]
call fcn.004092cd
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffee
lea eax, [ebp - 0xa10]
je 0x49338d
xor eax, eax
cmp dword [ebp - 0x18], eax
mov esi, eax
je 0x4934af
mov esi, edi
mov ecx, dword [ebp - 0x488]
neg ecx
sbb ecx, ecx
inc ecx
xor edx, edx
mov eax, dword [ebp - 0x400]
cmp dword [eax], ecx
sete dl
mov eax, dword [ebp - 0xbc8]
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp esi, ecx
setg al
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x400]
call fcn.004092cd
lea ecx, [ebp - 0x240]
call fcn.004092cd
mov dword [ebp - 0x20], 5
mov dword [ebp - 0x34], 0x2c93
cmp dword [ebp - 0x34], 0x3073
jle 0x493568
xor ebx, ebx
xor esi, esi
xor edi, edi
mov eax, esi
cdq
idiv edi
or edx, ebx
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xe18]
call fcn.00401a48
pop ecx
pop ecx
mov ecx, eax
call fcn.00408fc8
push eax
call fcn.004aba17
pop ecx
push 0
push 1
lea ecx, [ebp - 0xe18]
call fcn.004097a9
inc edi
cmp edi, 0xe5c
jl 0x493511
inc esi
cmp esi, 0x157
jl 0x49350f
inc ebx
cmp ebx, 0x61f2
jl 0x49350d
xor edi, edi
inc edi
or ebx, 0xffffffff
mov dword [ebp - 0x2c], 0x50dfa014
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x34], 0x2b99
jge 0x49358a
push 0xa9e118
call fcn.004aba17
pop ecx
mov dword [ebp - 4], ebx
xor eax, eax
jmp 0x4935b6
push 8
pop esi
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 3
jge 0x4935db
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xf8], 0x75b57fd5
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x4935c2
xor eax, eax
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 0xffffffeb
jle 0x49376a
mov dword [ebp - 0x30], 0x30d8
cmp dword [ebp - 0x30], 0x3463
jle 0x493685
mov ecx, eax
mov dword [ebp - 0x38], ecx
jmp 0x49360b
mov ebx, eax
mov dword [ebp - 0x34], ebx
jmp 0x493614
mov edi, eax
mov eax, ecx
cdq
idiv ebx
mov ebx, edx
xor esi, esi
mov eax, esi
and eax, edi
or eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xfa4]
call fcn.00401a48
pop ecx
pop ecx
mov ecx, eax
call fcn.00408fc8
push eax
call fcn.004aba17
pop ecx
push 0
push 1
lea ecx, [ebp - 0xfa4]
call fcn.004097a9
inc esi
cmp esi, 0x26be
jl 0x49361f
inc edi
cmp edi, 0x439d
jl 0x49361d
mov dword [ebp - 0x2c], 0x98ab5457
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x30], 0x2e9e
jge 0x4936a7
push 0xa9e17c
call fcn.004aba17
pop ecx
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x4936d2
push 8
pop esi
mov dword [ebp - 0x38], 0x86524f20
mov dword [ebp - 0x1c], 0x49a2f381
mov eax, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0xf4]
add eax, edx
cmp dword [ebp - 0x2c], eax
jg 0x49370c
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xf4]
xor edx, edx
cmp ecx, eax
setne dl
sub edx, 3
imul ecx, edx, 0x660d
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, 0xdfcf
jne 0x49374e
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x49378c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x71c]
mov dword [eax + ecx*4], 0x790660d6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x493772
xor eax, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], 0xfffffffd
mov dword [ebp - 0x40], 0xca9869ec
mov dword [ebp - 0x34], 0x6ced
cmp dword [ebp - 0x34], 0x6e4c
jle 0x493808
mov esi, eax
jmp 0x4937b3
mov edi, eax
mov eax, edi
or eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xe48]
call fcn.00401a48
pop ecx
pop ecx
mov ecx, eax
call fcn.00408fc8
push eax
call fcn.004aba17
pop ecx
push 0
push 1
lea ecx, [ebp - 0xe48]
call fcn.004097a9
inc edi
cmp edi, 0x25c
jl 0x4937b5
inc esi
cmp esi, 0x78ac
jl 0x4937b1
mov dword [ebp - 0x20], edi
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x34], 0x6ca2
jge 0x493826
push 0xa9e198
call fcn.004aba17
pop ecx
mov dword [ebp - 4], ebx
xor ebx, ebx
inc ebx
or esi, 0xffffffff
jmp 0x493854
mov dword [ebp - 0x20], 0xe3cf9575
push 4
lea ecx, [ebp - 0x418]
call fcn.004091fb
mov dword [ebp - 0x20], 0x8cb667f5
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 4
jge 0x493895