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

Disassembly:
mov eax, 0x4a63a6
call fcn.004a5ab8
sub esp, 0xe5c
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x5c], dl
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x44], 0x7659
xor eax, eax
xor edi, edi
inc edi
cmp dword [ebp - 0x44], 0x777b
jle 0x45383b
mov esi, eax
mov ebx, eax
mov eax, esi
cdq
idiv ebx
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xdc0]
call fcn.00401e2f
pop ecx
pop ecx
mov ecx, eax
call fcn.0041b4cc
push eax
call fcn.0048ee0a
pop ecx
push 0
push edi
lea ecx, [ebp - 0xdc0]
call fcn.0040144e
inc ebx
cmp ebx, 0x59f5
jl 0x4537f4
inc esi
xor eax, eax
cmp esi, 0x16bb
jl 0x4537f2
mov dword [ebp - 0x14], 0xf30cc2fd
mov dword [ebp - 0x24], 0x9f7c8b16
mov dword [ebp - 0x3c], 0xa8551b32
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], 0xffff
mov dword [ebp - 0x1c], eax
jmp 0x453870
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xcc], 0xecbfcf41
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x45385f
or ebx, 0xffffffff
cmp dword [ebp - 0x14], ebx
ja 0x453880
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x14]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setl cl
imul ecx, dword [ebp - 0x14]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x3c], 0
mov edx, dword [ebp - 0xcc]
neg edx
sbb edx, edx
neg edx
dec dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, edx
setle cl
mov eax, dword [ebp - 0xcc]
imul ecx, eax
mov eax, dword [ebp - 0x3c]
add eax, 0x4e627738
add eax, ecx
xor ecx, ecx
cmp eax, 0x2398
setle cl
xor edx, edx
cmp ecx, 0xd8d9
setl dl
mov eax, 0xffff14ea
sub eax, edx
add eax, dword [ebp - 0x24]
je 0x453908
mov dword [ebp - 0x3c], edi
inc dword [ebp - 0x3c]
jmp 0x453918
mov dword [ebp - 0x40], 0x38e21363
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x40], eax
and dword [ebp - 4], 0
cmp dword [ebp - 0x44], 0x72b6
jge 0x453930
push 0xaa1db0
call fcn.0048ee0a
pop ecx
mov dword [ebp - 4], ebx
jmp 0x453956
mov dword [ebp - 0x2c], 0x862fd41e
movdqa xmm0, xmmword [0xaa7740]
movdqu xmmword [ebp - 0x824], xmm0
lea ecx, [ebp - 0x824]
lea eax, [ebp - 0x814]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x3f4]
call fcn.0041b6e7
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x14], 0x5bfeb1ec
push 2
pop ebx
mov dword [ebp - 0x3c], ebx
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
jge 0x4539b9
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x268], 5
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x4539a1
xor eax, eax
mov dword [ebp - 0x2c], 0xfffffffb
jmp 0x453aee
mov dword [ebp - 0x20], 0xde2167fa
mov dword [ebp - 0x40], 0xeca6696b
mov dword [ebp - 0x20], eax
jmp 0x453ae1
mov dword [ebp - 0x28], 0x5ed9a924
mov dword [ebp - 0x3c], 0x97867a7b
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x453a0e
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x930], 5
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x4539f5
xor eax, eax
cmp dword [ebp - 0x28], eax
je 0x453a21
cmp dword [ebp - 0x20], eax
jne 0x453aeb
jmp 0x453ade
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x34], 0x74f5
mov eax, dword [ebp - 0x3f4]
mov dword [eax], 7
mov dword [ebp - 0x3c], edi
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
neg ecx
sbb ecx, ecx
add ecx, 0x7ec6
xor eax, eax
cmp ecx, edi
setl al
imul eax, dword [ebp - 0x34]
imul eax, eax, 0xa9ef
add eax, 0x4a81a4e1
jne 0x453a6b
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setl dl
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
xor eax, eax
cmp dword [ebp - 0x28], eax
jl 0x453a8f
mov ecx, edi
jne 0x453a91
mov ecx, eax
mov eax, dword [ebp - 0x3f4]
cmp ecx, dword [eax + 4]
jl 0x453aa6
cmp dword [ebp - 0x28], 0
je 0x453aa6
mov edx, edi
jmp 0x453aa8
xor edx, edx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x928], ecx
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0
jne 0x453ac4
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], eax
xor eax, eax
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xffffffee
jg 0x4539db
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xffffffef
jg 0x4539c5
mov ecx, dword [ebp - 0x268]
mov eax, dword [ebp - 0x3f4]
mov dword [eax], ecx
lea ecx, [ebp - 0x3f4]
call fcn.0041b70d
mov dword [ebp - 0x54], 0xf30cc2fd
mov dword [ebp - 0x14], 0x5912
mov dword [ebp - 0x2c], ebx
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x3c], 0xe623b26d
mov dword [ebp - 0x1c], eax
jmp 0x453b44
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xb8], 0xc013cef3
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x453b33
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x28]
je 0x453b63
xor eax, eax
cmp dword [ebp - 0x2c], eax
mov ecx, eax
je 0x453b65
mov ecx, edi
mov eax, dword [ebp - 0x14]
sub ecx, eax
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0xb8]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
dec eax
add eax, ecx
jne 0x453ba3
cmp dword [ebp - 0x28], eax
je 0x453ba5
mov eax, edi
mov ecx, dword [ebp - 0xb8]
imul ecx, eax
mov eax, dword [ebp - 0xb8]
xor edx, edx
cmp ecx, eax
setge dl
mov esi, dword [ebp - 0x2c]
neg esi
sub esi, edx
neg esi
sbb esi, esi
inc esi
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, esi
setge cl
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp eax, ecx
setle dl
add edx, 0xb1e5
jne 0x453be6
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0xb8]
mov ecx, edi
sub ecx, eax
mov dword [ebp - 0xb4], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x2c], 0x9f7c8b16
mov dword [ebp - 0x14], 0xe83c773
mov dword [ebp - 0x3c], 3
mov dword [ebp - 0x40], 0xe0f61949
mov dword [ebp - 0x44], 0x467a
cmp dword [ebp - 0x44], 0x4a2f
jle 0x453c6b
xor ebx, ebx
xor esi, esi
xor eax, eax
mov dword [ebp - 0x3c], eax
lea ecx, [eax + esi]
mov eax, ebx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xab36e8
call fcn.0041b4f7
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
cmp eax, 0x633d
jl 0x453c34
inc esi
cmp esi, 0x1f88
jl 0x453c2f
inc ebx
cmp ebx, 0x540c
jl 0x453c2d
push 2
pop ebx
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x44], 0x43c7
jge 0x453c88
push 0xaa1e14
push 0xab36e8
call fcn.0041cf47
pop ecx
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x453cba
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x453cd8
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x750], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x453cc3
xor eax, eax
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], eax
jl 0x453cf8
xor ebx, ebx
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x750], ebx
jne 0x453cf3
dec dword [ebp - 0x14]
jns 0x453ce2
xor eax, eax
push 2
pop ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xfffffff0
jg 0x453f70
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x38], 0x2bdb979c
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], eax
jl 0x453f68
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], eax
jl 0x453e2d
mov dword [ebp - 0x24], 0x2f5
cmp dword [ebp - 0x24], 0x5cb
jle 0x453d9f
mov edx, eax
mov dword [ebp - 0x34], eax
mov ecx, eax
mov dword [ebp - 0x44], eax
mov esi, eax
xor ecx, edx
mov dword [ebp - 0x3c], ecx
mov ebx, eax
mov eax, ebx
xor eax, esi
or eax, ecx
cdq
push edx
push eax
mov ecx, 0xab36e8
call fcn.0041b4f7
inc ebx
cmp ebx, 0x68a6
mov ecx, dword [ebp - 0x3c]
jl 0x453d50
inc esi
cmp esi, 0x4a88
push 0
pop eax
jl 0x453d4e
mov ecx, dword [ebp - 0x44]
inc ecx
mov dword [ebp - 0x44], ecx
cmp ecx, 0x2f29
mov edx, dword [ebp - 0x34]
jl 0x453d47
inc edx
mov dword [ebp - 0x34], edx
cmp edx, 0x3b34
jl 0x453d42
or esi, 0xffffffff
push 2
pop ebx
mov dword [ebp - 0x40], 0x9dbea522
mov dword [ebp - 4], 4
cmp dword [ebp - 0x24], 0x26e
jge 0x453dc7
push 0xaa1e74
push 0xab36e8
call fcn.0041cf47
pop ecx
pop ecx
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x453df6
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x453e1c
push 0x1af3
push 0xaa3
push 0x112c
push 0x26a6
push eax
call dword [0xab6400]
xor eax, eax
cmp dword [ebp - 0x40], eax
jne 0x453e2b
dec dword [ebp - 0x20]
xor eax, eax
jmp 0x453d24
xor eax, eax
cmp dword [ebp - 0x28], eax
je 0x453f13
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jg 0x453f60
mov dword [ebp - 0x24], 0xf6a715cc
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jg 0x453f0b
mov dword [ebp - 0x3c], 0x2d9c
cmp dword [ebp - 0x3c], 0x2ff1
jle 0x453e92
mov esi, eax
mov ebx, eax
mov eax, ebx
or eax, esi
cdq
push edx
push eax
mov ecx, 0xab36e8
call fcn.0041b4f7
inc ebx
cmp ebx, 0x55ba
jl 0x453e69
inc esi
cmp esi, 0x2d28
push 0
pop eax
jl 0x453e67
push 2
pop ebx
mov byte [ebp - 0x45], al
mov dword [ebp - 4], 6
cmp dword [ebp - 0x3c], 0x2cee
jge 0x453eb6
push 0xaa1ea8
push 0xab36e8
call fcn.0041cf47
pop ecx
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x453ee8
cmp byte [ebp - 0x45], 0
je 0x453efe
push eax
push 0x2ec
push eax
push eax
push eax
push eax
call dword [0xab6200]
dec dword [ebp - 0x1c]
inc dword [ebp - 0x24]
xor eax, eax
jmp 0x453e4c
inc dword [ebp - 0x20]
jmp 0x453e39
mov dword [ebp - 0x3c], 0x86f8
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x748], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x3c]
sub ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setle dl
add edx, dword [ebp - 0x3c]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, 8
setge cl
sub ecx, dword [ebp - 0x20]
sub ecx, 0x33f665aa
mov dword [ebp - 0x40], ecx
xor eax, eax
dec dword [ebp - 0x28]
jmp 0x453d15
dec dword [ebp - 0x14]
jmp 0x453cfb
mov dword [ebp - 0x3c], 0xa8551b32
mov dword [ebp - 0x1c], 0x3ae35568
mov dword [ebp - 0x38], 0xeb905d09
mov dword [ebp - 0x1c], 0xa
cmp dword [ebp - 0x1c], 3
jge 0x453fbe
push 0xfffffffffffffff8
pop ecx
mov dword [ebp - 0x3c], ecx
dec dword [ebp - 0x3c]
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x453fb5
push eax
push 0xe49
call dword [0xab60d0]
xor eax, eax
push 0xfffffffffffffff8
pop ecx
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x453f95
mov dword [ebp - 0x38], 6
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x38], 0x925b0e44
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x3c], 0xc13fe662
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x453ffb
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xafc], 0xd4f2887c
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x453fe2
xor eax, eax
inc dword [ebp - 0x3c]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x38], 0x7c7c
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x38], 0xe0b4074d
mov dword [ebp - 0x40], 0xc66f5a9c
mov dword [ebp - 0x38], 0x891c5534
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x7e4], xmm0
lea ecx, [ebp - 0x7e4]
lea eax, [ebp - 0x7d4]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x8a4]
call fcn.0041b6e7
mov dword [ebp - 0x38], 0x188e17b8
mov dword [ebp - 0x30], 0xe32cf41
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x38], 0x66d210ec
mov dword [ebp - 0x38], 0x65256810
mov dword [ebp - 0x38], 0x49598aaf
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x38], 0x1912530a
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x38], 0x51dd2e91
mov dword [ebp - 0x34], edi
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x1c], eax
jmp 0x4540a6
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x9c0], 0xfffffff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x454095
dec dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x34]
sub edx, eax
add edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0x8a4]
call fcn.0041b70d
mov dword [ebp - 0x20], 0xffff
mov dword [ebp - 0x38], 0x7c7c
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x38], 0xe0b4074d
mov dword [ebp - 0x40], 0xc66f5a9c
mov dword [ebp - 0x38], 0x891c5534
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x864], xmm0
lea ecx, [ebp - 0x864]
lea eax, [ebp - 0x854]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x904]
call fcn.0041b6e7
mov dword [ebp - 0x38], 0x188e17b8
mov dword [ebp - 0x30], 0xe32cf41
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x38], 0x66d210ec
mov dword [ebp - 0x38], 0x65256810
mov dword [ebp - 0x38], 0x49598aaf
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x38], 0x1912530a
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x38], 0x51dd2e91
mov dword [ebp - 0x34], edi
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x1c], eax
jmp 0x454183
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x9d8], 0xfffffff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x454172
dec dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x34]
sub edx, eax
add edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0x904]
call fcn.0041b70d
mov dword [ebp - 0x3c], 0xb0c
cmp dword [ebp - 0x3c], 0xd94
jle 0x45420f
xor esi, esi
xor ebx, ebx
mov eax, esi
mov ecx, ebx
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xa30]
call fcn.00401e2f
pop ecx
pop ecx
mov ecx, eax
call fcn.0041b4cc
push eax
call fcn.0048ee0a
pop ecx
push 0
push edi
lea ecx, [ebp - 0xa30]
call fcn.0040144e
inc ebx
cmp ebx, 0x2a91
jl 0x4541c8
inc esi
cmp esi, 0xf67
jl 0x4541c6
or esi, 0xffffffff
mov dword [ebp - 0x1c], 0
jmp 0x454229
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xec], 0xecbfcf41
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x454218
mov dword [ebp - 4], 8
cmp dword [ebp - 0x3c], 0x805
jge 0x454249
push 0xaa1ef0
call fcn.0048ee0a
pop ecx
mov dword [ebp - 4], esi
jmp 0x454271
mov ebx, 0xffff14ea
cmp dword [ebp - 0x54], esi
ja 0x45427e
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
sub edx, dword [ebp - 0x54]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x54]
xor ecx, ecx
cmp edx, eax
setl cl
imul ecx, dword [ebp - 0x54]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x14], 0xfffffffb
mov dword [ebp - 0x14], 0xfffffff6
jmp 0x4543c7
mov dword [ebp - 0x214], 0xe9d0
mov dword [ebp - 0x210], 0xe9d0
mov dword [ebp - 0x20c], 0xe9d0
mov dword [ebp - 0x208], 0xe9d0
mov dword [ebp - 0x28], 0x9da4d073
mov dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x208]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x208]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
xor eax, eax
cmp dword [ebp - 0x214], eax
je 0x45433d
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x4543c4
push eax
call dword [0xab62f0]
jmp 0x4543c4
mov dword [ebp - 0x28], 3
cmp dword [ebp - 0x28], eax
jl 0x4543c4
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edi
jge 0x454369
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xa8], 0x8d303f02
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x454351
xor eax, eax
mov dword [ebp - 0xa8], 3
cmp dword [ebp - 0xa8], eax
jl 0x4543a8
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x24], 3
cmp dword [ebp - 0x24], eax
jl 0x4543a0
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x45439b
call dword [0xab6210]
xor eax, eax
dec dword [ebp - 0x24]
jns 0x45438a
dec dword [ebp - 0xa8]
jns 0x45437b
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x214]
mov ecx, 0x5794
sub ecx, eax
mov dword [ebp - 0x40], ecx
dec dword [ebp - 0x28]
push 0
pop eax
jns 0x454349
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffffe
jle 0x4542c4
mov edx, dword [ebp - 0xec]
neg edx
sbb edx, edx
neg edx
dec dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setle cl
mov eax, dword [ebp - 0xec]
imul ecx, eax
mov eax, dword [ebp - 0x3c]
add eax, 0x4e627738
add eax, ecx
xor ecx, ecx
cmp eax, 0x2398
setle cl
xor edx, edx
cmp ecx, 0xd8d9
setl dl
mov eax, ebx
sub eax, edx
add eax, dword [ebp - 0x2c]
je 0x454663
mov dword [ebp - 0x2c], 0x328f
mov dword [ebp - 0x28], 0xe4a6
mov dword [ebp - 0x34], 0xb243e5ec
mov dword [ebp - 0x40], 9
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x2c]
je 0x454465
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x28]
jl 0x454452
xor eax, eax
cmp dword [ebp - 0x2c], eax
je 0x454454
mov eax, edi
cmp eax, dword [ebp - 0x28]
jg 0x45445c
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
inc eax
cmp eax, dword [ebp - 0x34]
jg 0x454474
mov eax, dword [ebp - 0x2c]
xor eax, eax
cmp dword [ebp - 0x2c], eax
je 0x454480
mov eax, dword [ebp - 0x34]
xor eax, eax
mov dword [ebp - 0x40], 0xfe44
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x45449f
push 0x1831
push eax
push eax
call dword [0xab62d0]
xor eax, eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x38], 0xfffffffe
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x38], 0x6ca2cb51
mov dword [ebp - 0x28], 0xfffffff9
mov dword [ebp - 0x1c], 0x30a4ccfd
mov dword [ebp - 0x34], 0x61eb
cmp dword [ebp - 0x34], 0x656a
jle 0x45455a
mov dword [ebp - 0x44], eax
jmp 0x4544df
xor eax, eax
mov edx, eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x3c], 0x54f6
jmp 0x4544ef
xor eax, eax
mov esi, eax
jmp 0x4544f5
xor eax, eax
mov ebx, eax
mov eax, ebx
xor eax, esi
xor eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xc88]
call fcn.00401e2f
pop ecx
pop ecx
mov ecx, eax
call fcn.0041b4cc
push eax
call fcn.0048ee0a
pop ecx
push 0
push edi
lea ecx, [ebp - 0xc88]
call fcn.0040144e
inc ebx
cmp ebx, 0x17d7
mov edx, dword [ebp - 0x24]
jl 0x4544f7
inc esi
cmp esi, 0xb11
jl 0x4544f3
mov ecx, dword [ebp - 0x44]
add edx, ecx
mov dword [ebp - 0x24], edx
dec dword [ebp - 0x3c]
jne 0x4544ed
inc ecx
mov dword [ebp - 0x44], ecx
cmp ecx, 0x15d9
jl 0x4544dd
or esi, 0xffffffff
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x34], 0x5e42
jge 0x454575
push 0xaa1f54
call fcn.0048ee0a
pop ecx
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x4545a1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x4545c1
xor ebx, ebx
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xde8], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x4545ac
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x4545d7
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xe28], 0x1f145ba1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x4545c6
dec dword [ebp - 0x1c]
mov dword [ebp - 0x28], 0x1a
cmp dword [ebp - 0x28], 0xfffffff1
jl 0x45465b
push 2
pop ebx
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x3c], esi
push ebx
lea ecx, [ebp - 0x5ac]
call fcn.0041b63b
mov dword [ebp - 0x1c], 0
jmp 0x45461e
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x5ac]
mov dword [eax + ecx*4], 0xf585950c
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x45460b
mov dword [ebp - 0x3c], ebx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
sub edx, eax
inc edx
neg edx
sbb edx, edx
inc edx
add edx, dword [ebp - 0x44]
xor ecx, ecx
test edx, edx
setg cl
mov eax, dword [ebp - 0x5ac]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x5ac]
call fcn.0041b70d
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xfffffff1
jge 0x4545f0
inc dword [ebp - 0x2c]
jmp 0x4549de
mov dword [ebp - 0x3c], 0x27f2
cmp dword [ebp - 0x3c], 0x2803
jle 0x4546cf
xor eax, eax
mov dword [ebp - 0x24], eax
xor esi, esi
xor ebx, ebx
add eax, esi
and eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xb50]
call fcn.00401e2f
pop ecx
pop ecx
mov ecx, eax
call fcn.0041b4cc
push eax
call fcn.0048ee0a
pop ecx
push 0
push edi
lea ecx, [ebp - 0xb50]
call fcn.0040144e
inc ebx
cmp ebx, 0x3de0
mov eax, dword [ebp - 0x24]
jl 0x45467c
inc esi
cmp esi, 0x5a7f
jl 0x45467a
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x3465
jl 0x454678
or esi, 0xffffffff
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x3c], 0x2574
jge 0x4546ea
push 0xaa1f78
call fcn.0048ee0a
pop ecx
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x454714
push 0xfffffffffffffff8
pop ecx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 2
jge 0x454739
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xc0], 0x5540d7f8
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x454720
xor eax, eax
mov dword [ebp - 0xc0], eax
jmp 0x454794
mov dword [ebp - 0x34], 0xfc0
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x34], eax
je 0x45475a
cmp dword [ebp - 0xc0], eax
mov ebx, edi
jne 0x45475c
mov ebx, eax
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp eax, ecx
setle dl
mov esi, dword [ebp - 0x34]
sub esi, edx
xor eax, eax
cmp ebx, edi
setne al
imul eax, eax, 0xb60e
xor ecx, ecx
cmp esi, eax
setge cl
mov dword [ebp - 0x40], ecx
inc dword [ebp - 0xc0]
push 0
pop eax
push 0xfffffffffffffff8
pop ecx
cmp dword [ebp - 0xc0], 4
jge 0x454741
mov dword [ebp - 0x40], 0x38e21363
push 2
lea ecx, [ebp - 0x130]
call fcn.0041b63b
push edi
lea ecx, [ebp - 0x2a4]
call fcn.0041b63b
mov dword [ebp - 0x44], 0x23a4
cmp dword [ebp - 0x44], 0x2469
jle 0x454833
xor eax, eax
push eax
push eax
push 0x172c
push 0x6ad
push 0x244
call dword [0xab6364]
xor esi, esi
mov dword [ebp - 0x3c], esi
mov ebx, esi
mov esi, 0x2903
mov eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xd3c]
call fcn.00401e2f
pop ecx
pop ecx
mov ecx, eax
call fcn.0041b4cc
push eax
call fcn.0048ee0a
pop ecx
push 0
push edi
lea ecx, [ebp - 0xd3c]
call fcn.0040144e
dec ebx
dec esi
jne 0x4547f2
mov esi, dword [ebp - 0x3c]
inc esi
mov dword [ebp - 0x3c], esi
cmp esi, 0x7dbb
jl 0x4547eb
mov dword [ebp - 0x14], 0
jmp 0x45484b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x130]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45483c
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x44], 0x21d8
jge 0x45486c
push 0xaa2010
call fcn.0048ee0a
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x45489b
mov dword [ebp - 0x14], eax
jmp 0x4548b3
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2a4]
mov dword [eax + ecx*4], 0xb743d837
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4548a0
mov ecx, dword [ebp - 0x2a4]
mov dword [ecx], edi
mov edx, dword [ebp - 0x130]
mov dword [ebp - 0x2c], 0xfffffff7
mov eax, dword [ecx]
xor ebx, ebx
cmp dword [edx + eax*4], ebx
jne 0x4549a8
xor eax, eax
cmp dword [edx], eax
je 0x45499d
mov dword [ebp - 0x14], 0xf8067e30
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x14], eax
jl 0x454987
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x14]
xor ecx, ecx
mov esi, dword [ebp - 0x130]
cmp dword [esi + eax*4], 1
setle cl
mov eax, 0xfffe
cmp eax, ecx
sbb eax, eax
inc eax
xor edx, edx
cmp eax, dword [esi + edi*4]
setle dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
sete cl
xor edx, edx
mov eax, dword [ebp - 0x130]
cmp dword [eax + ebx*4], ecx
setle dl
sub edx, 0xb80b
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x2c], edx
xor edi, edi
inc edi
mov dword [ebp - 0x2c], edi
js 0x45497e
mov dword [ebp - 0x28], 0x7ebd004d
mov dword [ebp - 0x28], 0
jmp 0x454974
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x130]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edi
jle 0x45495f
dec dword [ebp - 0x2c]
jns 0x45494f
dec dword [ebp - 0x14]
jns 0x4548f7
mov ecx, dword [ebp - 0x2a4]
mov eax, dword [ecx]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x130]
or esi, 0xffffffff
jmp 0x4549a0
mov dword [ebp - 0x2c], esi
dec dword [ecx]
jns 0x4548c6
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x4549bf
push eax
push 0xef
push eax
call dword [0xab60d8]
lea ecx, [ebp - 0x2a4]
call fcn.0041b70d
lea ecx, [ebp - 0x130]
call fcn.0041b70d
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x20], 0xfffffff7
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x3c], 0x84255ebd
mov dword [ebp - 0x1c], 0x16488a9
mov dword [ebp - 0x3c], 0x9d9e62b5
or esi, 0xffffffff
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x454a24
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x26c], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x454a10
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x454a3a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1ac], 0xbc2a41b8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x454a29
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, 0xfffffff9
setge cl
mov eax, dword [ebp - 0x34]
dec dword [ebp - 0x34]
cmp eax, ecx
jge 0x454a5b
mov eax, edi
jmp 0x454a5d
xor eax, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x20]
sub edx, eax
neg edx
sbb edx, edx
inc edx
neg edx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [ebp - 0x26c], ecx
xor eax, eax
cmp ecx, edi
setg al
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x1c]
xor ebx, ebx
cmp edx, eax
setle bl
imul ebx, dword [ebp - 0x20]
sub ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp ebx, eax
setne cl
cmp esi, ecx
sbb eax, eax
inc eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
xor eax, eax
cmp dword [ebp - 0x20], eax
jne 0x454ad7
cmp dword [ebp - 0x1c], eax
je 0x454ad9
mov eax, edi
mov edx, dword [ebp - 0x20]
add edx, eax
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x3c], 0x1349
cmp dword [ebp - 0x3c], 0x13b7
jle 0x454b3d
xor ecx, ecx
mov dword [ebp - 0x24], ecx
xor ebx, ebx
xor esi, esi
mov eax, ebx
cdq
idiv esi
lea eax, [ecx + edx]
cdq
push edx
push eax
mov ecx, 0xab36e8
call fcn.0041b4f7
inc esi
cmp esi, 0x72c4
mov ecx, dword [ebp - 0x24]
jl 0x454b04
inc ebx
cmp ebx, 0x13ca
jl 0x454b02
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x6098
jl 0x454b00
or esi, 0xffffffff
mov dword [ebp - 0x1c], edi
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x454b57
push eax
push eax
push eax
push eax
push eax
call dword [0xab62c4]
xor eax, eax
mov dword [ebp - 0x1c], 0x12
jmp 0x454b8d
mov dword [ebp - 0x40], 0xfff9
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x454b85
push 0x203c
push eax
push eax
push 0x11a1
push eax
call dword [0xab632c]
xor eax, eax
cmp dword [ebp - 0x40], eax
jne 0x454b93
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x1a
je 0x454b60
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x3c], 0xfd4
jge 0x454bb4
push 0xaa2048
push 0xab36e8
call fcn.0041cf47
pop ecx
pop ecx
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x454bde
mov dword [ebp - 0x1c], 0x871c7bf0
mov dword [ebp - 0x34], 3
mov dword [ebp - 0x24], 7
mov dword [ebp - 0x28], 2
mov dword [ebp - 0x44], 0x5778
cmp dword [ebp - 0x44], 0x5ab7
jle 0x454c37
mov esi, eax
mov ebx, eax
mov dword [ebp - 0x3c], 0x754b
mov eax, ebx
cdq
push edx
push eax
mov ecx, 0xab36e8
call fcn.0041b4f7
add ebx, esi
dec dword [ebp - 0x3c]
jne 0x454c15
inc esi
cmp esi, 0x36af
push 0
pop eax
jl 0x454c0c
mov dword [ebp - 0x30], 0xfffffffc
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x44], 0x5554
jge 0x454c5f
push 0xaa20c0
push 0xab36e8
call fcn.0041cf47
pop ecx
pop ecx
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x454c8a
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, ecx
setle dl
mov dword [ebp - 0x28], edx
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x1d
jle 0x454cd6
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x40], 0x85c9e53
imul eax, dword [ebp - 0x30], 0xf3f1
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x34], eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x1d
jg 0x454cb1
xor eax, eax
mov dword [ebp - 0x2c], 0xf30cc2fd
mov dword [ebp - 0x28], 0x7dfa
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x454d09
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x708], 2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x454cf0
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x454d2b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x460], 8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x454d12
xor eax, eax
cmp dword [ebp - 0x28], eax
je 0x454e34
push 4
lea ecx, [ebp - 0x4bc]
call fcn.0041b63b
mov dword [ebp - 0x24], 0x8586fd5d
mov dword [ebp - 0x1c], 0
jmp 0x454d64
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x4bc]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x454d51
mov dword [ebp - 0x28], 0
cmp dword [ebp - 0x28], edi
jg 0x454e27
mov esi, dword [ebp - 0x4bc]
mov dword [ebp - 0x3c], edi
push edi
lea ecx, [ebp - 0x474]
call fcn.0041b63b
mov dword [ebp - 0x1c], 0
jmp 0x454dab
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x474]
mov dword [eax + ecx*4], 0xf9dbc9b7
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x454d98
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x708]
mov eax, dword [ebp - 0x24]
dec dword [esi + 8]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x460]
xor ecx, ecx
cmp eax, edi
setg cl
mov dword [ebp - 0x460], ecx
mov eax, dword [ebp - 0x40]
imul eax, ecx
cmp eax, 0x9e22401d
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x474]
mov dword [eax], ecx
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x454e10
push eax
push 0x1730
push eax
call dword [0xab620c]
lea ecx, [ebp - 0x474]
call fcn.0041b70d
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edi
jle 0x454d80
lea ecx, [ebp - 0x4bc]
call fcn.0041b70d
jmp 0x454e5d
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x454e47
push eax
push eax
call dword [0xab6344]
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x454e5f
push eax
push 0xef
push eax
call dword [0xab60d8]
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x454e71
push eax
call dword [0xab6308]
xor eax, eax
mov dword [ebp - 0x28], 0xfffffff7
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x454e9a
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x8bc], 0xfffffffb
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x454e81
xor eax, eax
mov dword [ebp - 0x44], 0x5b96
cmp dword [ebp - 0x44], 0x5d69
jle 0x454efa
mov esi, eax
jmp 0x454eb0
xor eax, eax
mov ebx, eax
mov dword [ebp - 0x3c], 0x199b
mov eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xb80]
call fcn.00401e2f
pop ecx
pop ecx
mov ecx, eax
call fcn.0041b4cc
push eax
call fcn.0048ee0a
pop ecx
push 0
push edi
lea ecx, [ebp - 0xb80]
call fcn.0040144e
add ebx, esi
dec dword [ebp - 0x3c]
jne 0x454eb9
inc esi
cmp esi, 0x5e60
jl 0x454eae
or ebx, 0xffffffff
mov dword [ebp - 0x28], 0
jmp 0x454f2a
mov dword [ebp - 0x1c], 0x9b546158
cmp dword [ebp - 0x28], 0
jne 0x454f30
mov dword [ebp - 0x1c], edi
jmp 0x454f21
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x8bc], eax
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffff0
jne 0x454f15
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x12
jl 0x454f03
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x44], 0x5864
jge 0x454f4b
push 0xaa214c
call fcn.0048ee0a
pop ecx
mov dword [ebp - 4], ebx
jmp 0x454f73
push 0xfffffffffffffff8
pop esi
mov dword [ebp - 0x28], ebx
push 4
lea ecx, [ebp - 0x28c]
call fcn.0041b63b
mov dword [ebp - 0x3c], 0x997736e
mov dword [ebp - 0x40], ebx
movdqa xmm0, xmmword [0xaa7750]
movdqu xmmword [ebp - 0x804], xmm0
lea ecx, [ebp - 0x804]
lea eax, [ebp - 0x7f4]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x8ec]
call fcn.0041b6e7
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x454fe0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28c]
mov dword [eax + ecx*4], 0x638e
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x454fc5
xor eax, eax
mov dword [ebp - 0x28], 5
jmp 0x455144
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x455011
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x10c], 0xaed23b61
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x454ff8
xor eax, eax
mov dword [ebp - 0x10c], 3
cmp dword [ebp - 0x10c], eax
jl 0x4550d7
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 0x20], 3
cmp dword [ebp - 0x20], eax
jl 0x4550c8
mov dword [ebp - 0x24], 0x6c516535
mov dword [ebp - 0x24], 3
cmp dword [ebp - 0x24], eax
jl 0x4550a8
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x14], eax
jmp 0x45509d
mov dword [ebp - 0x1c], 0x9f4981ff
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x455082
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xe48], 0x4ef66b17
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x455069
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x455094
mov dword [ebp - 0x3c], 0xc587
inc dword [ebp - 0x3c]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jle 0x455087
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jle 0x455059
dec dword [ebp - 0x24]
jns 0x455051
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x28c]
xor ebx, ebx
cmp dword [eax + ecx*4], ebx
jne 0x4550c6
dec dword [ebp - 0x20]
push ebx
pop eax
jns 0x45503e
xor eax, eax
dec dword [ebp - 0x10c]
jns 0x455027
or ebx, 0xffffffff
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], eax
jl 0x45513e
mov esi, dword [ebp - 0x28c]
mov dword [ebp - 0x40], ebx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x10c]
xor ecx, ecx
cmp dword [esi + 4], 0xe3bf
setle cl
mov eax, dword [ebp - 0x40]
imul eax, ecx
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x1c]
add eax, ecx
mov dword [ebp - 0x40], eax
xor eax, eax
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], al
je 0x455137
push eax
push 0x123f
call dword [0xab62c8]
dec dword [ebp - 0x1c]
jns 0x4550e9
xor eax, eax
inc dword [ebp - 0x28]
push 0xfffffffffffffff8
pop esi
cmp dword [ebp - 0x28], 0xe
jl 0x454fec
lea ecx, [ebp - 0x8ec]
call fcn.0041b70d
lea ecx, [ebp - 0x28c]
call fcn.0041b70d
mov dword [ebp - 0x14], 0x8a87013d
push 4
lea ecx, [ebp - 0x564]
call fcn.0041b63b
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x24], 0x623c
cmp dword [ebp - 0x24], 0x63c9
jle 0x4551e9
xor ecx, ecx
mov dword [ebp - 0x34], ecx
xor eax, eax
mov dword [ebp - 0x44], eax
xor ebx, ebx
mov edx, ecx
mov ecx, eax
sar edx, cl
mov dword [ebp - 0x3c], edx
xor esi, esi
mov eax, ebx
mov ecx, esi
shl eax, cl
xor eax, edx
cdq
push edx
push eax
mov ecx, 0xab36e8
call fcn.0041b4f7
inc esi
cmp esi, 0x6a45
mov edx, dword [ebp - 0x3c]
jl 0x4551a2
inc ebx
cmp ebx, 0x6c5
jl 0x4551a0
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
cmp eax, 0x77fe
mov ecx, dword [ebp - 0x34]
jl 0x455195
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 0x35ef
jl 0x455190
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x24], 0x6130
jge 0x45520a
push 0xaa2190
push 0xab36e8
call fcn.0041cf47
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x455235
mov dword [ebp - 0x44], 0x13ee
cmp dword [ebp - 0x44], 0x171c
jle 0x4552d8
mov dword [ebp - 0x24], eax
jmp 0x455250
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x34], ecx
jmp 0x455259
xor eax, eax
mov esi, eax
mov dword [ebp - 0x3c], esi
jmp 0x455262
xor eax, eax
mov ebx, eax
mov eax, ecx
cdq
idiv esi
mov esi, edx
and esi, dword [ebp - 0x24]
mov eax, ebx
or eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xcb8]
call fcn.00401e2f
pop ecx
pop ecx
mov ecx, eax
call fcn.0041b4cc
push eax
call fcn.0048ee0a
pop ecx
push 0
push edi
lea ecx, [ebp - 0xcb8]
call fcn.0040144e
inc ebx
cmp ebx, 0x5c79
jl 0x45526e
mov esi, dword [ebp - 0x3c]
inc esi
mov dword [ebp - 0x3c], esi
cmp esi, 0x2cb5
mov ecx, dword [ebp - 0x34]
jl 0x455260
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 0x47f2
jl 0x455257
mov edx, dword [ebp - 0x24]
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0x12bd
jl 0x45524e
mov dword [ebp - 0x1c], 0
jmp 0x4552f4
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x564]
mov dword [eax + ecx*4], 0x4f88039d
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x4552e1
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x44], 0x101d
jge 0x455315
push 0xaa21ec
call fcn.0048ee0a
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x455340
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
je 0x455363
push 0x260b
push 0x260e
push 0x9df
push 0x5a0
call dword [0xab6418]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x564]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
test eax, eax
setns cl
mov dword [esi + 8], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
imul edx, dword [esi + 8]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp eax, ecx
setne dl
mov eax, dword [ebp - 0x14]
sub eax, edx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x564]
call fcn.0041b70d
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x20], 0xe0648261
mov dword [ebp - 0x3c], 9
mov dword [ebp - 0x34], 0x45ccb972
or esi, 0xffffffff
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x20], 0xffffffeb
jmp 0x4553fd
mov dword [ebp - 0x40], 3
mov dword [ebp - 0x30], 0x5db34e6d
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffffa
jg 0x4553e3
cmp dword [ebp - 0x20], 0xfffffffd
ja 0x455426
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x20], 0xff12
xor eax, eax
cmp dword [ebp - 0x20], eax
je 0x455428
mov eax, edi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x1c], 0xbc40ed3c
mov dword [ebp - 0x20], 0x324ec2e0
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x40], 0x3922cbd4
mov dword [ebp - 0x20], 0xffffffe9
jmp 0x4554b9
mov dword [ebp - 0x28], 0x6d0374c7
mov dword [ebp - 0x34], 0xfffffff6
mov dword [ebp - 0x40], 0xda2a0c0e
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x20]
test eax, eax
jne 0x45548a
cmp dword [ebp - 0x20], eax
jne 0x45548a
mov edx, edi
mov eax, dword [ebp - 0x28]
neg edx
xor ecx, ecx
cmp eax, edx
setne cl
dec ecx
neg ecx
sbb ecx, ecx
inc ecx
xor edx, edx
cmp ecx, 0xffff
setne dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x40], ecx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff3
jge 0x45544c
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], 0xd40a7fb
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x38], 6
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x38], 0x925b0e44
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x3c], 0xc13fe662
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 3
jge 0x455529
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0xd60], 0xd4f2887c
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x455510
inc dword [ebp - 0x3c]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 2
jge 0x45554b