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

Disassembly:
mov eax, 0x4da0ef
call fcn.004d9668
sub esp, 0xdf0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x68], dl
mov dword [ebp - 0x1b8], ecx
mov dword [ebp - 0x1c], 0x2c03342e
push 0xfffffffffffffffb
pop esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x20], 0x6ed73489
mov dword [ebp - 0x44], 0x1489
xor eax, eax
cmp dword [ebp - 0x44], 0x1840
jle 0x45ecef
mov esi, eax
mov dword [ebp - 0x3c], esi
mov edi, eax
mov dword [ebp - 0x48], edi
jmp 0x45ec6c
xor eax, eax
mov ebx, eax
mov eax, esi
cdq
idiv edi
mov eax, edx
mov dword [ebp - 0x50], eax
xor esi, esi
mov edi, eax
mov ecx, ebx
sar edi, cl
mov eax, edi
mov ecx, esi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xb98]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0045cb47
push eax
call fcn.004c4197
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb98]
call fcn.0045d043
inc esi
cmp esi, 0x491d
jl 0x45ec80
inc ebx
cmp ebx, 0x3bea
mov eax, dword [ebp - 0x50]
jl 0x45ec78
mov edi, dword [ebp - 0x48]
inc edi
mov dword [ebp - 0x48], edi
cmp edi, 0x243b
mov esi, dword [ebp - 0x3c]
jl 0x45ec6a
inc esi
mov dword [ebp - 0x3c], esi
xor eax, eax
cmp esi, 0x2afe
jl 0x45ec63
push 0xfffffffffffffffb
pop esi
xor ebx, ebx
inc ebx
mov dword [ebp - 0x20], 0xd296407
mov dword [ebp - 4], eax
cmp dword [ebp - 0x44], 0x141e
jge 0x45ed10
push 0xacb5a0
call fcn.004c4197
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x45ed3e
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x45ed5c
xor edi, edi
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x9c], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x45ed48
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x45ed7c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x17c], 0x2b3f54c3
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x45ed64
xor eax, eax
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x1c], 0xfffffff2
je 0x45ef72
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], eax
jg 0x45ef62
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x48], 0x8d1d9d65
mov dword [ebp - 0x48], 0x74f1
cmp dword [ebp - 0x48], 0x78d0
jle 0x45ee1d
push 0x126b
push eax
push 0x5fc
push 0x3b5
push 0x3ce
call dword [0xadf0f0]
xor esi, esi
xor edi, edi
mov eax, edi
and eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xcdc]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0045cb47
push eax
call fcn.004c4197
pop ecx
push 0
push ebx
lea ecx, [ebp - 0xcdc]
call fcn.0045d043
inc edi
cmp edi, 0x2682
jl 0x45edd8
inc esi
cmp esi, 0x7aaf
jl 0x45edd6
push 0xfffffffffffffffb
pop esi
mov dword [ebp - 4], 2
cmp dword [ebp - 0x48], 0x738e
jge 0x45ee38
push 0xacb608
call fcn.004c4197
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x45ee66
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], eax
je 0x45eef9
mov eax, dword [ebp - 0x54]
xor edi, edi
cmp dword [ebp + eax*4 - 0x9c], edi
je 0x45eee8
mov eax, dword [ebp - 0x54]
cmp dword [ebp + eax*4 - 0x9c], edi
je 0x45eee8
mov edx, dword [ebp - 0x1c]
dec edx
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x9c]
sub edx, eax
mov ecx, dword [ebp - 0x54]
imul ecx, edx
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x54]
xor ecx, ecx
cmp edx, eax
setg cl
imul eax, ecx, 0x5bf7
test eax, eax
je 0x45eec5
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x34], ebx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp + eax*4 - 0x9c]
mov eax, dword [ebp - 0x54]
xor ecx, ecx
test eax, eax
setg cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], edi
je 0x45eef7
mov edx, ebx
jmp 0x45eefb
xor eax, eax
mov edx, eax
mov dword [ebp - 0x38], 0xffff7071
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x54]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x1c]
sub eax, 4
mov dword [ebp - 0x17c], eax
xor eax, eax
cmp dword [ebp - 0x34], eax
jne 0x45ef35
cmp dword [ebp - 0x1c], eax
mov ecx, eax
je 0x45ef37
mov ecx, ebx
mov eax, dword [ebp - 0x54]
xor edi, edi
cmp dword [ebp + eax*4 - 0x9c], edi
jne 0x45ef48
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
sub eax, ecx
xor ecx, ecx
cmp eax, 0xffffffff
setg cl
mov dword [ebp - 0x20], ecx
inc dword [ebp - 0x54]
xor eax, eax
jmp 0x45ed8f
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x54], eax
dec dword [ebp - 0x1c]
xor eax, eax
jmp 0x45ed7f
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0x1a
jne 0x45efda
mov dword [ebp - 0x50], 0x9babe4a9
mov dword [ebp - 0x20], eax
jmp 0x45efc5
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
jl 0x45efc2
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp + eax*4 - 0x17c], edi
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x45efbb
push eax
push 0xe98
push 0xa78
push 0x8d5
call dword [0xadf03c]
dec dword [ebp - 0x1c]
jns 0x45ef8f
xor eax, eax
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff3
je 0x45ef87
mov eax, dword [ebp - 0x50]
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0x1a
push 0
pop eax
je 0x45ef7b
mov dword [ebp - 0x38], 0xfffffffa
mov dword [ebp - 0x18], 0xfffffffd
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x45f00a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xd60], 0xcb4f5fdf
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x45eff1
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0xa
jge 0x45f261
push 2
lea ecx, [ebp - 0x198]
call fcn.0045cc67
mov dword [ebp - 0x20], 0xcce57bf5
mov dword [ebp - 0x50], 0x289aa508
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x45f058
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x198]
mov dword [eax + ecx*4], 9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45f03d
xor eax, eax
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], eax
jl 0x45f24e
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 0x14], 0x4ddb84c6
mov dword [ebp - 0x40], 0xfffffffa
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x40], 0xdbf12959
mov dword [ebp - 0x40], 0xa95534fd
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jg 0x45f244
mov dword [ebp - 0x28], 0xb243e5ec
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x198]
mov edx, dword [eax]
sub edx, ecx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, edx
setle cl
add ecx, dword [ebp - 0x1c]
xor eax, eax
cmp ecx, 6
setne al
inc eax
je 0x45f0e2
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x198]
xor edi, edi
cmp dword [eax + ecx*4], edi
je 0x45f0e2
mov eax, ebx
jmp 0x45f0e6
xor eax, eax
xor edi, edi
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x18]
cmp dword [ecx + edx*4], eax
jle 0x45f12a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x198]
cmp dword [eax + ecx*4], edi
jne 0x45f12a
xor edx, edx
jmp 0x45f12c
mov edx, ebx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x198]
mov dword [eax + ecx*4], edx
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jg 0x45f23c
mov dword [ebp - 0x40], 0xfffffff6
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jg 0x45f234
mov dword [ebp - 0x48], 0x236d
cmp dword [ebp - 0x48], 0x274d
jle 0x45f198
mov esi, eax
mov edi, eax
mov eax, esi
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xadc578
call fcn.0045cb52
inc edi
cmp edi, 0x4117
jl 0x45f16d
inc esi
cmp esi, 0x2247
push 0
pop eax
jl 0x45f16b
push 0xfffffffffffffffb
pop esi
mov dword [ebp - 0x40], 0xfffffff8
mov dword [ebp - 4], 4
cmp dword [ebp - 0x48], 0x2129
jge 0x45f1be
mov edx, 0xacb630
mov ecx, 0xadc578
call fcn.0045e4f8
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x45f1ec
mov dword [ebp - 0x48], 0xe848967c
inc dword [ebp - 0x48]
mov dword [ebp - 0x28], eax
jmp 0x45f224
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x45f20f
push 0xff9
call dword [0xadf3ac]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x198]
xor edi, edi
cmp dword [eax + ecx*4], edi
jne 0x45f22a
inc dword [ebp - 0x28]
push edi
pop eax
cmp dword [ebp - 0x28], 2
jle 0x45f1fb
inc dword [ebp - 0x18]
xor eax, eax
jmp 0x45f150
inc dword [ebp - 0x14]
jmp 0x45f13d
inc dword [ebp - 0x1c]
jmp 0x45f08d
dec dword [ebp - 0x20]
xor eax, eax
jmp 0x45f05b
lea ecx, [ebp - 0x198]
call fcn.0045cd39
inc dword [ebp - 0x38]
jmp 0x45f00d
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x45f283
push 0xaa6
push eax
push 0xdb0
push 0x4ed
call dword [0xadf418]
xor eax, eax
mov dword [ebp - 0x5c], 0x2c03342e
mov dword [ebp - 0x18], 0x62d5e48d
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x48], eax
push ebx
lea ecx, [ebp - 0x730]
call fcn.0045cc67
mov dword [ebp - 0x18], 0
jmp 0x45f2c1
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x3bc], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x45f2b0
mov dword [ebp - 0x18], 0
jmp 0x45f2e2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x730]
mov dword [eax + ecx*4], 0x6e2c9bf5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x45f2cf
mov dword [ebp - 0x18], 0
cmp dword [ebp - 0x18], 0xffffffec
jl 0x45f47d
mov dword [ebp - 0x14], 0xfffffff7
push ebx
lea ecx, [ebp - 0x64c]
call fcn.0045cc67
mov dword [ebp - 0x20], 0
cmp dword [ebp - 0x20], ebx
jge 0x45f32d
xor edi, edi
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x64c]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x45f319
mov dword [ebp - 0x3c], 0x298d
cmp dword [ebp - 0x3c], 0x2a6e
jle 0x45f369
xor esi, esi
xor edi, edi
mov eax, esi
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xadc578
call fcn.0045cb52
inc edi
cmp edi, 0xe47
jl 0x45f341
inc esi
cmp esi, 0x145d
jl 0x45f33f
push 0xfffffffffffffffb
pop esi
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x64c]
mov dword [ecx], eax
test eax, eax
jne 0x45f401
mov dword [ecx], 3
mov edx, dword [ebp - 0x18]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setl cl
mov edx, dword [ebp - 0x14]
sub edx, ecx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x34], ecx
xor eax, eax
cmp dword [ebp - 0x34], eax
je 0x45f3b5
cmp dword [ebp - 0x14], eax
mov ecx, ebx
jne 0x45f3b7
mov ecx, eax
xor eax, eax
cmp ecx, 0x166c1932
setg al
cmp eax, dword [ebp - 0x18]
jg 0x45f3d0
xor eax, eax
cmp dword [ebp - 0x14], eax
mov ecx, eax
je 0x45f3d2
mov ecx, ebx
mov dword [ebp - 0x3bc], ecx
mov eax, dword [ebp - 0x18]
sub eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 0x48]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, dword [ebp - 0x14]
jge 0x45f401
xor ecx, ecx
jmp 0x45f403
mov ecx, ebx
add ecx, 0x194
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setne dl
cmp edx, ebx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x730]
mov dword [eax], ecx
mov dword [ebp - 4], 6
cmp dword [ebp - 0x3c], 0x267c
jge 0x45f440
mov edx, 0xacb690
mov ecx, 0xadc578
call fcn.0045e4f8
or dword [ebp - 4], 0xffffffff
jmp 0x45f46a
lea ecx, [ebp - 0x64c]
call fcn.0045cd39
dec dword [ebp - 0x18]
jmp 0x45f2ee
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x730]
call fcn.0045cd39
mov dword [ebp - 0x20], 0x53b26bdd
mov dword [ebp - 0x38], 0x8c658163
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x54], 0x7606e82a
mov dword [ebp - 0x40], 5
mov dword [ebp - 0x20], 0xfffffff6
cmp dword [ebp - 0x20], 9
jne 0x45f67a
mov dword [ebp - 0x1c], 0xfffffffe
mov dword [ebp - 0x28], 0x9cec
push ebx
lea ecx, [ebp - 0x254]
call fcn.0045cc67
mov dword [ebp - 0x18], 0
jmp 0x45f4f6
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x1f8], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x45f4e5
mov dword [ebp - 0x18], 0
jmp 0x45f518
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x254]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x45f505
mov dword [ebp - 0x1c], 0xfffffffd
jmp 0x45f5ba
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x50], 8
mov dword [ebp - 0x38], ebx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, ecx
setne dl
mov eax, dword [ebp - 0x20]
add eax, 0xcdea
add eax, edx
jne 0x45f558
cmp dword [ebp - 0x34], eax
je 0x45f55a
mov eax, ebx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x34]
xor edx, edx
cmp eax, 0xed1456b8
setne dl
mov eax, dword [ebp - 0x50]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x54], ecx
dec dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x28]
cmp eax, 0x883f
jg 0x45f5ad
mov dword [ebp - 0x1f4], 0x3c44
mov dword [ebp - 0x38], 0x3c44
cmp dword [ebp - 0x38], 0
je 0x45f5ad
mov ecx, ebx
jmp 0x45f5af
xor ecx, ecx
mov eax, dword [ebp - 0x254]
mov dword [eax], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x1c
jge 0x45f529
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
jg 0x45f65f
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x1f0]
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x254]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x254]
mov eax, dword [eax + ecx*4]
mov dword [edx + esi*4], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x1f4]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x1f8]
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x254]
mov eax, dword [ebp - 0x1f4]
imul eax, dword [ecx + edx*4]
test eax, eax
je 0x45f62f
cmp dword [ebp - 0x20], 0
je 0x45f62f
mov eax, ebx
jmp 0x45f631
xor eax, eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x1f4]
mov eax, dword [ebp - 0x54]
xor edx, edx
cmp eax, ecx
setg dl
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1f8], edx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0
jle 0x45f5d2
lea ecx, [ebp - 0x254]
call fcn.0045cd39
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 9
je 0x45f4c2
push 0xfffffffffffffffb
pop esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x20], 0x6ed73489
push ebx
lea ecx, [ebp - 0x47c]
call fcn.0045cc67
mov dword [ebp - 0x38], 0xfffffff6
mov dword [ebp - 0x34], 0xf9f7
mov dword [ebp - 0x48], 0xd972c40a
mov dword [ebp - 0x50], 0xad3380ee
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x45f6d0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x47c]
mov dword [eax + ecx*4], 4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x45f6b6
xor eax, eax
mov dword [ebp - 0x38], eax
jmp 0x45f734
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x45f6f4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x378], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x45f6e0
xor eax, eax
mov dword [ebp - 0x378], 0xc8fc558b
mov dword [ebp - 0x14], 0xc8fc558b
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], eax
jl 0x45f731
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x45f726
push 0x1ed4
push 0xbe5
call dword [fcn.00adf3c8]
mov eax, dword [ebp - 0x14]
dec dword [ebp - 0x14]
push 0
pop eax
jns 0x45f70d
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], eax
jle 0x45f6d5
jne 0x45f75f
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], 0x980d
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x47c]
mov eax, dword [eax]
imul eax, eax
mov dword [ebp - 0x48], eax
xor eax, eax
cmp dword [ebp - 0x48], eax
mov ecx, eax
je 0x45f761
mov ecx, ebx
mov eax, dword [ebp - 0x47c]
sub ecx, dword [eax]
cmp ecx, dword [ebp - 0x34]
je 0x45f778
cmp dword [ebp - 0x34], 0
je 0x45f778
mov eax, ebx
jmp 0x45f77a
xor eax, eax
mov dword [ebp - 0x50], eax
lea ecx, [ebp - 0x47c]
call fcn.0045cd39
mov dword [ebp - 0x20], 0xd296407
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x50], 0xdf98a59c
mov dword [ebp - 0x40], 0xfc07e17f
mov dword [ebp - 0x40], 0xffffffff
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x45f7cb
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x5b8], 0xfffffffc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45f7b2
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x45f801
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x45f7f0
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x2e0], 0xb4ebb0cb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x45f7d8
xor eax, eax
dec dword [ebp - 0x5b8]
cmp dword [ebp - 0x2e0], eax
jne 0x45f807
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1a
jne 0x45f7d0
mov dword [ebp - 0x50], 0x90a23371
mov dword [ebp - 0x14], 0x462d5e48
mov dword [ebp - 0x50], 0x47c9d5fa
mov dword [ebp - 0x14], eax
jmp 0x45f8af
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x45f844
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x104], 6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x45f82c
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x45f85d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x78], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x45f84c
xor eax, eax
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], eax
jg 0x45f8ac
mov eax, dword [ebp - 0x78]
xor edi, edi
cmp dword [ebp + eax*4 - 0x104], edi
jne 0x45f8aa
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp + eax*4 - 0x104]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x78]
mov eax, dword [ebp + eax*4 - 0x104]
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, ebx
setg al
mov dword [ebp - 0x50], eax
inc dword [ebp - 0x78]
cmp dword [ebp - 0x78], edi
jle 0x45f865
xor eax, eax
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffe9
jl 0x45f824
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x45f8d2
push eax
push eax
push eax
push 0x307
call dword [fcn.00adf050]
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x45f8f0
xor edi, edi
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x98], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x45f8dc
xor eax, eax
mov dword [ebp - 0x430], 0x7e55059b
mov dword [ebp - 0x42c], 0x7e55059b
mov dword [ebp - 0x428], 0x7e55059b
mov dword [ebp - 0x424], 0x7e55059b
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x40], 0xb6b0e1b1
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 2
jge 0x45f948
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x314], 0xbe8f2100
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x45f92f
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x45f95e
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x748], 0xfffffff7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x45f94d
mov eax, dword [ebp - 0x314]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x42c]
add ecx, eax
mov eax, dword [ebp - 0x740]
inc dword [ebp - 0x740]
cmp eax, ecx
je 0x45f98f
mov eax, ebx
jmp 0x45f991
xor eax, eax
mov ecx, dword [ebp - 0x42c]
imul ecx, eax
mov eax, dword [ebp - 0x428]
sub ecx, eax
mov eax, dword [ebp - 0x314]
add eax, ecx
cmp eax, 0xfff9
sbb eax, eax
inc eax
mov dword [ebp - 0x314], eax
mov dword [ebp - 0x18], 0
jmp 0x45f9d2
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x178], 0x2b3f54c3
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x45f9c1
mov dword [ebp - 0x28], 0xb58e
push 2
lea ecx, [ebp - 0x168]
call fcn.0045cc67
mov dword [ebp - 0x34], 0xb56cef3
mov dword [ebp - 0x48], 0x1576660b
mov dword [ebp - 0x3c], 0x2570
mov dword [ebp - 0x50], 0xa0c844fc
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 2
jge 0x45fa2b
xor edi, edi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x168]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45fa16
dec dword [ebp - 0x28]
jne 0x45fad4
cmp dword [ebp - 0x28], 0
jne 0x45fa82
mov edx, 0x811fc80
mov eax, dword [ebp - 0x168]
sub edx, dword [eax]
mov eax, dword [ebp - 0x28]
sub edx, eax
mov eax, dword [ebp - 0x168]
imul edx, dword [eax + 4]
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov edx, dword [ebp - 0x168]
cmp dword [edx], eax
setle cl
cmp ecx, 0x31e7bf5c
jg 0x45fa88
xor esi, esi
jmp 0x45fa8a
mov edx, dword [ebp - 0x168]
mov esi, ebx
mov ecx, dword [edx]
mov eax, dword [ebp - 0x28]
imul eax, esi
sub eax, ecx
neg eax
sbb eax, eax
inc eax
cmp eax, ecx
je 0x45faa6
xor eax, eax
cmp dword [ebp - 0x28], eax
mov edx, eax
je 0x45faa8
mov edx, ebx
xor ecx, ecx
mov eax, dword [ebp - 0x168]
cmp dword [eax], edx
sete cl
sub ecx, 0xa0becc33
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x168]
cmp dword [eax], ebx
jl 0x45fad4
xor ecx, ecx
jmp 0x45fad6
mov ecx, ebx
add ecx, 5
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setl dl
xor ebx, ebx
cmp edx, 0x220985a9
setg bl
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp ebx, eax
setne cl
imul ecx, dword [ebp - 0x28]
add ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0x168]
call fcn.0045cd39
mov dword [ebp - 0x5c], 0xfffffffb
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x5c], 0xfffffff2
je 0x45fc53
mov dword [ebp - 0x1c], ebx
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
jg 0x45fc45
jmp 0x45fb36
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x48], 0x8d1d9d65
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], eax
je 0x45fbda
mov eax, dword [ebp - 0x1c]
xor edi, edi
cmp dword [ebp + eax*4 - 0x98], edi
je 0x45fbc9
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x98], edi
je 0x45fbc9
mov edx, dword [ebp - 0x5c]
dec edx
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x98]
sub edx, eax
mov ecx, dword [ebp - 0x1c]
imul ecx, edx
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setg cl
imul eax, ecx, 0x5bf7
test eax, eax
je 0x45fba6
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x34], ebx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x98]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
test eax, eax
setg cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], edi
je 0x45fbd8
mov edx, ebx
jmp 0x45fbdc
xor eax, eax
mov edx, eax
mov dword [ebp - 0x38], 0xffff7071
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x98]
mov eax, dword [ebp - 0x5c]
sub eax, 4
mov dword [ebp - 0x178], eax
xor eax, eax
cmp dword [ebp - 0x34], eax
jne 0x45fc16
cmp dword [ebp - 0x5c], eax
mov ecx, eax
je 0x45fc18
mov ecx, ebx
mov eax, dword [ebp - 0x1c]
xor edi, edi
cmp dword [ebp + eax*4 - 0x98], edi
jne 0x45fc29
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
sub eax, ecx
xor ecx, ecx
cmp eax, 0xffffffff
setg cl
mov dword [ebp - 0x20], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jle 0x45fb34
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x1c], eax
dec dword [ebp - 0x5c]
jmp 0x45fb17
mov dword [ebp - 0x20], 0x158018d9
mov dword [ebp - 0x1c], 0xfffffffc
mov dword [ebp - 0x14], 0x8af8716b
mov dword [ebp - 0x54], 0x7d228d5f
mov dword [ebp - 0x28], 0x2b058efa
push 2
pop esi
push esi
lea ecx, [ebp - 0x2a8]
call fcn.0045cc67
mov dword [ebp - 0x3ec], 0x162d50c8
mov dword [ebp - 0x3e8], 0x162d50c8
mov dword [ebp - 0x3e4], 0x162d50c8
mov dword [ebp - 0x3e0], 0x162d50c8
movdqa xmm0, xmmword [0xad0bb0]
movdqu xmmword [ebp - 0xa64], xmm0
lea ecx, [ebp - 0xa64]
lea eax, [ebp - 0xa54]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x760]
call fcn.0045cd13
mov dword [ebp - 0x48], 0xffffffff
mov dword [ebp - 0x18], 0
jmp 0x45fcf6
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2a8]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x45fce7
mov dword [ebp - 0x18], 0
jmp 0x45fd15
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x3ac], 0xaa237f4a
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x45fd04
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0
jne 0x45fd5b
mov eax, dword [ebp - 0x2a8]
xor edi, edi
cmp dword [eax], edi
je 0x45fd32
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x760]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3e4]
dec dword [ebp - 0x3e4]
xor eax, eax
mov dword [ebp - 0x3ac], eax
cmp dword [ecx + 8], eax
jne 0x45fd5b
mov ecx, ebx
jmp 0x45fd5d
xor ecx, ecx
mov edx, dword [ebp - 0x760]
xor eax, eax
test ecx, ecx
sete al
xor ecx, ecx
cmp eax, 0x215f8f50
setle cl
xor eax, eax
cmp ecx, dword [edx + 8]
setg al
imul eax, eax, 0x6e30
mov esi, dword [ebp - 0x2a8]
test eax, eax
je 0x45fd95
cmp dword [esi], 0
je 0x45fd95
mov eax, ebx
jmp 0x45fd97
xor eax, eax
cmp eax, 0x87642760
sbb eax, eax
inc eax
xor ecx, ecx
cmp eax, dword [edx + 8]
setg cl
imul ecx, dword [esi + 4]
add ecx, dword [edx + 0xc]
mov esi, dword [esi]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
sete dl
mov eax, dword [ebp - 0x54]
xor ecx, ecx
cmp edx, eax
setg cl
lea eax, [ecx + 3]
add eax, esi
xor ecx, ecx
cmp eax, esi
setne cl
add ecx, dword [ebp - 0x14]
jne 0x45fe2c
mov eax, dword [ebp - 0x2a8]
xor edi, edi
cmp dword [eax], edi
jne 0x45fe2c
mov esi, 0xffff
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x28], 0xffffffe2
jmp 0x45fe06
mov dword [ebp - 0x50], 0x9616
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x50], 0xd6c1c926
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x12
jl 0x45fdf2
lea ecx, [ebp - 0x760]
call fcn.0045cd39
lea ecx, [ebp - 0x2a8]
call fcn.0045cd39
xor eax, eax
mov dword [ebp - 0x38], eax
jmp 0x46015f
mov dword [ebp - 0x20], 0xfffffff8
mov esi, 0xffff
xor eax, eax
cmp dword [ebp - 0x20], 0xfffffff5
je 0x45fe0c
mov dword [ebp - 0x5c], 4
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xd
je 0x4600fe
mov dword [ebp - 0x18], 0xfb9d
mov dword [ebp - 0x28], 0xfffffffe
cmp dword [ebp - 0x28], 0x17
jne 0x4600f6
mov dword [ebp - 0x34], 0x62da
mov dword [ebp - 0x64], 0xfff8
mov dword [ebp - 0x50], 0xb7a7919e
mov byte [ebp - 0x2d], al
mov dword [ebp - 0x48], 0x3ea9
cmp dword [ebp - 0x48], 0x425f
jle 0x45fec3
mov edi, eax
mov esi, eax
mov eax, esi
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xadc578
call fcn.0045cb52
inc esi
cmp esi, 0x48df
jl 0x45fe98
inc edi
cmp edi, 0x2f24
push 0
pop eax
jl 0x45fe96
mov esi, 0xffff
cmp byte [ebp - 0x2d], 0
je 0x45fed2
push eax
push ebx
push eax
call dword [fcn.00adf204]
mov dword [ebp - 4], 8
cmp dword [ebp - 0x48], 0x3c5a
jge 0x45fef1
mov edx, 0xacb6f4
mov ecx, 0xadc578
call fcn.0045e4f8
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x45ff21
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jg 0x4600ec
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x54], ebx
cmp dword [ebp - 0x54], eax
jl 0x4600e4
mov dword [ebp - 0x3c], 0x5022
cmp dword [ebp - 0x3c], 0x5125
jle 0x45ffbb
mov edi, eax
jmp 0x45ff53
xor eax, eax
mov esi, eax
jmp 0x45ff59
xor eax, eax
mov ebx, eax
mov eax, edi
cdq
idiv esi
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x48], 0x635b
mov eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xbc8]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0045cb47
push eax
call fcn.004c4197
pop ecx
push 0
push 1
lea ecx, [ebp - 0xbc8]
call fcn.0045d043
add ebx, dword [ebp - 0x50]
dec dword [ebp - 0x48]
jne 0x45ff6a
inc esi
cmp esi, 0x4495
jl 0x45ff57
inc edi
cmp edi, 0x7feb
jl 0x45ff51
xor ebx, ebx
inc ebx
mov esi, 0xffff
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x3c], 0x4d74
jge 0x45ffd6
push 0xacb750
call fcn.004c4197
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x460006
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 2
jge 0x460028
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax*4 - 0x874], 0x21526695
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 2
jl 0x46000f
xor eax, eax
mov dword [ebp - 0x34], 0x12ea
cmp dword [ebp - 0x34], eax
je 0x460095
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp + eax*4 - 0x3ec]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
sete dl
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp + eax*4 - 0x3ac]
xor ecx, ecx
cmp eax, edx
setle cl
imul eax, ecx, 5
xor ecx, ecx
test eax, eax
setns cl
mov dword [ebp - 0x874], ecx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setge dl
cmp edx, esi
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp + eax*4 - 0x3ac]
mov eax, dword [ebp - 0x64]
xor ecx, ecx
test eax, eax
setg cl
sub edx, ecx
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
cmp edx, eax
setle cl
test ecx, ecx
je 0x4600c5
xor eax, eax
cmp dword [ebp - 0x44], eax
mov edx, eax
je 0x4600c7
mov edx, ebx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x50], eax
dec dword [ebp - 0x54]
xor eax, eax
jmp 0x45ff34
inc dword [ebp - 0x14]
jmp 0x45ff24
inc dword [ebp - 0x28]
xor eax, eax
jmp 0x45fe62
inc dword [ebp - 0x1c]
jmp 0x45fe4a
dec dword [ebp - 0x20]
jmp 0x45fe3a
mov dword [ebp - 0x50], 0x9babe4a9
mov dword [ebp - 0x20], eax
jmp 0x460150
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], eax
jl 0x46014d
mov eax, dword [ebp - 0x5c]
xor edi, edi
mov dword [ebp + eax*4 - 0x178], edi
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x460146
push eax
push 0xe98
push 0xa78
push 0x8d5
call dword [0xadf03c]
dec dword [ebp - 0x5c]
jns 0x46011a
xor eax, eax
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff3
je 0x460112
mov eax, dword [ebp - 0x50]
inc dword [ebp - 0x38]
push 0
pop eax
cmp dword [ebp - 0x38], 0x1a
je 0x460106
push ebx
lea ecx, [ebp - 0x494]
call fcn.0045cc67
mov dword [ebp - 0x50], 2
mov dword [ebp - 0x48], 0x4dc41fd9
push 3
lea ecx, [ebp - 0x50c]
call fcn.0045cc67
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x48], 0x50270f9e
mov dword [ebp - 0x48], 0x2522abf7
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jge 0x4601c1
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x494]
mov dword [eax + ecx*4], 9
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x4601a7
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x4601e3
xor edi, edi
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x50c]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x4601cc
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x4601f9
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x888], 6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x4601e8
mov eax, dword [ebp - 0x494]
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x48], 0xffffffff
mov eax, dword [ebp - 0x50c]
mov eax, dword [eax]
sub eax, 0x3bd5de1f
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x48]
sub ecx, eax
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50c]
mov ecx, dword [edx]
mov eax, dword [ebp - 0x494]
mov eax, dword [eax]
lea eax, [eax + ecx*2]
inc eax
mov dword [ebp - 0x888], eax
cmp eax, 0xec995f76
sbb eax, eax
neg eax
xor ecx, ecx
cmp eax, ebx
setge cl
mov esi, 0xe177c422
cmp esi, ecx
sbb eax, eax
inc eax
mov dword [ebp - 0x48], eax
je 0x46038a
xor eax, eax
cmp dword [edx + 4], eax
je 0x46038c
cmp dword [ebp - 0x38], eax
je 0x46038c
mov dword [ebp - 0x44], 0x5a3a
cmp dword [ebp - 0x44], 0x5c63
jle 0x46031d
push eax
push eax
push eax
push eax
call dword [0xadf2f4]
xor ebx, ebx
mov dword [ebp - 0x3c], ebx
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x48], 0x6366
xor esi, esi
mov ebx, dword [ebp - 0x14]
xor edi, edi
mov eax, ebx
cdq
idiv esi
mov ebx, edx
mov eax, ebx
and eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xdc0]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0045cb47
push eax
call fcn.004c4197
pop ecx
push 0
push 1
lea ecx, [ebp - 0xdc0]
call fcn.0045d043
inc edi
cmp edi, 0x72b0
jl 0x4602bd
inc esi
cmp esi, 0x686
mov ebx, dword [ebp - 0x14]
jl 0x4602b4
mov ebx, dword [ebp - 0x3c]
add dword [ebp - 0x14], ebx
dec dword [ebp - 0x48]
jne 0x4602af
inc ebx
mov dword [ebp - 0x3c], ebx
cmp ebx, 0x2202
jl 0x4602a3
xor ebx, ebx
inc ebx
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x44], 0x5819
jge 0x460338
push 0xacb7a8
call fcn.004c4197
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x460363
mov dword [ebp - 0x14], eax
jmp 0x460379
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xabc], 0xe9f4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x460368
mov eax, dword [ebp - 0xab8]
mov dword [ebp - 0x48], eax
jmp 0x4603a1
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x4603a3
push eax
push eax
push eax
push eax
push eax
push eax
call dword [0xadf288]
xor eax, eax
mov dword [ebp - 0x38], eax
jmp 0x4603b9
mov dword [ebp - 0x50], 0xffffffff
mov dword [ebp - 0x50], 0xfffffff7
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 2
jle 0x4603a8
lea ecx, [ebp - 0x50c]
call fcn.0045cd39
lea ecx, [ebp - 0x494]
call fcn.0045cd39
mov dword [ebp - 0xb4], 0x4039b642
mov dword [ebp - 0xb0], 0x4039b642
mov dword [ebp - 0xac], 0x4039b642
mov dword [ebp - 0xa8], 0x4039b642
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x40], 0x176
mov dword [ebp - 0x40], 0xf4b3
mov dword [ebp - 0xb4], 0xb2f
mov dword [ebp - 0xb0], 0xb2f
mov dword [ebp - 0xac], 0xb2f
mov dword [ebp - 0xa8], 0xb2f
push ebx
lea ecx, [ebp - 0x778]
call fcn.0045cc67
mov dword [ebp - 0x14], 0
jmp 0x46045b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x778]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x46044b
mov eax, dword [ebp - 0x778]
dec dword [eax]
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], al
je 0x46047a
push eax
push eax
call dword [0xadf010]
lea ecx, [ebp - 0x778]
call fcn.0045cd39
mov dword [ebp - 0x54], 0x2c03342e
mov dword [ebp - 0x38], 0xfffffffa
mov dword [ebp - 0x14], 0xfffffffd
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 3
jge 0x4604be
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xde4], 0xcb4f5fdf
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x4604a5
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0xa
jge 0x46068b
push 2
lea ecx, [ebp - 0x174]
call fcn.0045cc67
mov dword [ebp - 0x18], 0xcce57bf5
mov dword [ebp - 0x50], 0x289aa508
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x46050c
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x174]
mov dword [eax + ecx*4], 9
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x4604f1
xor eax, eax
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], eax
jl 0x460671
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 0x20], 0x4ddb84c6
mov dword [ebp - 0x40], 0xfffffffa
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x40], 0xdbf12959
mov dword [ebp - 0x40], 0xa95534fd
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jg 0x460668
mov dword [ebp - 0x28], 0xb243e5ec
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x174]
mov edx, dword [eax]
sub edx, ecx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, edx
setle cl
add ecx, dword [ebp - 0x1c]
xor eax, eax
cmp ecx, 6
setne al
inc eax
je 0x460596
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x174]
xor edi, edi
cmp dword [eax + ecx*4], edi
je 0x460596
mov eax, ebx
jmp 0x46059a
xor eax, eax
xor edi, edi
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x14]
cmp dword [ecx + edx*4], eax
jle 0x4605de
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x174]
cmp dword [eax + ecx*4], edi
jne 0x4605de
xor edx, edx
jmp 0x4605e0
mov edx, ebx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x174]
mov dword [eax + ecx*4], edx
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x460655
mov dword [ebp - 0x40], 0xfffffff6
mov dword [ebp - 0x14], eax
jmp 0x46064d
mov dword [ebp - 0x40], 0xfffffff8
mov dword [ebp - 0x48], 0xe848967c
inc dword [ebp - 0x48]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 2
jg 0x46064a
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x46062d
push 0xff9
call dword [0xadf3ac]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x174]
xor edi, edi
cmp dword [eax + ecx*4], edi
jne 0x460648
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
push edi
pop eax
jle 0x460619
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x4605ff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x4605f3
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jle 0x46054a
xor eax, eax
dec dword [ebp - 0x18]
jns 0x460518
lea ecx, [ebp - 0x174]
call fcn.0045cd39
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0xa
jl 0x4604cb
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x4606ac
push 0xaa6
push eax
push 0xdb0
push 0x4ed
call dword [0xadf418]
xor eax, eax
mov dword [ebp - 0x18], 0x62d5e48d
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x48], eax
push ebx
lea ecx, [ebp - 0x7b4]
call fcn.0045cc67
mov dword [ebp - 0x18], 0
jmp 0x4606e3
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x398], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x4606d2
mov dword [ebp - 0x18], 0
jmp 0x460704
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x7b4]
mov dword [eax + ecx*4], 0x6e2c9bf5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x4606f1
mov dword [ebp - 0x18], 0
jmp 0x460810
mov dword [ebp - 0x14], 0xfffffff7
push ebx
lea ecx, [ebp - 0x61c]
call fcn.0045cc67
mov dword [ebp - 0x20], 0
cmp dword [ebp - 0x20], ebx
jge 0x46074a
xor edi, edi
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x61c]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x460736
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x61c]
mov dword [ecx], eax
test eax, eax
jne 0x4607e2
mov dword [ecx], 3
mov edx, dword [ebp - 0x18]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setl cl
mov edx, dword [ebp - 0x14]
sub edx, ecx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x34], ecx
xor eax, eax
cmp dword [ebp - 0x34], eax
je 0x460796
cmp dword [ebp - 0x14], eax
mov ecx, ebx
jne 0x460798
mov ecx, eax
xor eax, eax
cmp ecx, 0x166c1932
setg al
cmp eax, dword [ebp - 0x18]
jg 0x4607b1
xor eax, eax
cmp dword [ebp - 0x14], eax
mov ecx, eax
je 0x4607b3
mov ecx, ebx
mov dword [ebp - 0x398], ecx
mov eax, dword [ebp - 0x18]
sub eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 0x48]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, dword [ebp - 0x14]
jge 0x4607e2
xor ecx, ecx
jmp 0x4607e4
mov ecx, ebx
add ecx, 0x194
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setne dl
cmp edx, ebx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x7b4]
mov dword [eax], ecx
lea ecx, [ebp - 0x61c]
call fcn.0045cd39
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffec
jge 0x460715
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x7b4]
call fcn.0045cd39
push 0xfffffffffffffffb
pop esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x58], 0x6ed73489
mov dword [ebp - 0x14], 0xd296407
mov dword [ebp - 0x20], 0x53b26bdd
mov dword [ebp - 0x38], 0x8c658163
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x54], 0x7606e82a
mov dword [ebp - 0x40], 5
mov dword [ebp - 0x20], 0xfffffff6
cmp dword [ebp - 0x20], 9
jne 0x460a2b
mov dword [ebp - 0x1c], 0xfffffffe
mov dword [ebp - 0x28], 0x9cec
push ebx
lea ecx, [ebp - 0x26c]
call fcn.0045cc67
mov dword [ebp - 0x18], 0
jmp 0x4608a7
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x1e0], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x460896
mov dword [ebp - 0x18], 0
jmp 0x4608c9
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x26c]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x4608b6
mov dword [ebp - 0x1c], 0xfffffffd
jmp 0x46096b
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x50], 8
mov dword [ebp - 0x38], ebx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, ecx
setne dl
mov eax, dword [ebp - 0x20]
add eax, 0xcdea
add eax, edx
jne 0x460909
cmp dword [ebp - 0x34], eax
je 0x46090b
mov eax, ebx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x34]
xor edx, edx
cmp eax, 0xed1456b8
setne dl
mov eax, dword [ebp - 0x50]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x54], ecx
dec dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x28]
cmp eax, 0x883f
jg 0x46095e
mov dword [ebp - 0x1dc], 0x3c44
mov dword [ebp - 0x38], 0x3c44
cmp dword [ebp - 0x38], 0
je 0x46095e
mov ecx, ebx
jmp 0x460960
xor ecx, ecx
mov eax, dword [ebp - 0x26c]
mov dword [eax], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x1c
jge 0x4608da
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
jg 0x460a10
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x1d8]
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x26c]
mov eax, dword [eax + ecx*4]
mov dword [edx + esi*4], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x1dc]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x1e0]
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x1dc]
imul eax, dword [ecx + edx*4]
test eax, eax
je 0x4609e0
cmp dword [ebp - 0x20], 0
je 0x4609e0
mov eax, ebx
jmp 0x4609e2
xor eax, eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x1dc]
mov eax, dword [ebp - 0x54]
xor edx, edx
cmp eax, ecx
setg dl
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x1e0], edx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0
jle 0x460983
lea ecx, [ebp - 0x26c]
call fcn.0045cd39
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 9
je 0x460873
push 0xfffffffffffffffb
pop esi
push ebx
lea ecx, [ebp - 0x44c]
call fcn.0045cc67
mov dword [ebp - 0x38], 0xfffffff6
mov dword [ebp - 0x34], 0xf9f7
mov dword [ebp - 0x48], 0xd972c40a
mov dword [ebp - 0x50], 0xad3380ee
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x460a77
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44c]
mov dword [eax + ecx*4], 4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x460a5d
xor eax, eax
mov dword [ebp - 0x38], eax
jmp 0x460adb
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x460a9b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x300], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x460a87
xor eax, eax
mov dword [ebp - 0x300], 0xc8fc558b
mov dword [ebp - 0x14], 0xc8fc558b
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], eax
jl 0x460ad8
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x460acd
push 0x1ed4
push 0xbe5
call dword [fcn.00adf3c8]
mov eax, dword [ebp - 0x14]
dec dword [ebp - 0x14]
push 0
pop eax
jns 0x460ab4
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], eax
jle 0x460a7c
jne 0x460b06
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], 0x980d
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x44c]
mov eax, dword [eax]
imul eax, eax
mov dword [ebp - 0x48], eax
xor eax, eax
cmp dword [ebp - 0x48], eax
mov ecx, eax
je 0x460b08
mov ecx, ebx
mov eax, dword [ebp - 0x44c]
sub ecx, dword [eax]
cmp ecx, dword [ebp - 0x34]
je 0x460b1f
cmp dword [ebp - 0x34], 0
je 0x460b1f
mov eax, ebx
jmp 0x460b21
xor eax, eax
mov dword [ebp - 0x50], eax
lea ecx, [ebp - 0x44c]
call fcn.0045cd39
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x50], 0xdf98a59c
mov dword [ebp - 0x40], 0xfc07e17f
mov dword [ebp - 0x40], 0xffffffff
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x460b6b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x5c8], 0xfffffffc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x460b52
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x460ba1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jge 0x460b90
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x3dc], 0xb4ebb0cb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x460b78
xor eax, eax
dec dword [ebp - 0x5c8]
cmp dword [ebp - 0x3dc], eax
jne 0x460ba7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1a
jne 0x460b70
mov dword [ebp - 0x50], 0x90a23371
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x460bcc
xor edi, edi
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xa0], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x460bb8
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x460bec
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x1a8], 0x2b3f54c3
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x460bd4
xor eax, eax
mov dword [ebp - 0x14], 0x462d5e48
mov dword [ebp - 0x50], 0x47c9d5fa
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffe9
jge 0x460d29
mov dword [ebp - 0x48], 0x78e3
cmp dword [ebp - 0x48], 0x7a49
jle 0x460c4c
mov esi, eax
mov edi, esi
mov ebx, 0x7399
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xadc578
call fcn.0045cb52
dec edi
dec ebx
jne 0x460c20
inc esi
cmp esi, 0x3746
jl 0x460c19
push ebx
push 0x15f
call dword [0xadf41c]
inc ebx
push 0xfffffffffffffffb
pop esi
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x48], 0x77ce
jge 0x460c6b
mov edx, 0xacb82c
mov ecx, 0xadc578
call fcn.0045e4f8
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x460c99
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x460cb9
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x108], 6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x460ca1
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jge 0x460cd2
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x80], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x460cc1
xor eax, eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], eax
jg 0x460d1f
mov eax, dword [ebp - 0x80]
xor edi, edi
cmp dword [ebp + eax*4 - 0x108], edi
jne 0x460d1f
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp + eax*4 - 0x108]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x80]
mov eax, dword [ebp + eax*4 - 0x108]
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, ebx
setg al
mov dword [ebp - 0x50], eax
inc dword [ebp - 0x80]
cmp dword [ebp - 0x80], edi
jle 0x460cda
dec dword [ebp - 0x14]
xor eax, eax
jmp 0x460bfd
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x460d40
push eax
push eax
push eax
push 0x307
call dword [fcn.00adf050]
mov dword [ebp - 0x54], esi
cmp dword [ebp - 0x54], 0xfffffff2
je 0x461b8d
lea edi, [ebp - 0x7e8]
mov dword [ebp - 0x28], 0xb58e
push 2
lea ecx, [ebp - 0x15c]
call fcn.0045cc67
mov dword [ebp - 0x34], 0xb56cef3
mov dword [ebp - 0x48], 0x1576660b
mov dword [ebp - 0x3c], 0x2570
mov dword [ebp - 0x50], 0xa0c844fc
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 2
jge 0x460dad
xor edi, edi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x15c]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x460d92
lea edi, [ebp - 0x7e8]
dec dword [ebp - 0x28]
jne 0x460e56
cmp dword [ebp - 0x28], 0
jne 0x460e04
mov edx, 0x811fc80
mov eax, dword [ebp - 0x15c]
sub edx, dword [eax]
mov eax, dword [ebp - 0x28]
sub edx, eax
mov eax, dword [ebp - 0x15c]
imul edx, dword [eax + 4]
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov edx, dword [ebp - 0x15c]
cmp dword [edx], eax
setle cl
cmp ecx, 0x31e7bf5c
jg 0x460e0a
xor esi, esi
jmp 0x460e0c
mov edx, dword [ebp - 0x15c]
mov esi, ebx
mov ecx, dword [edx]
mov eax, dword [ebp - 0x28]
imul eax, esi
sub eax, ecx
neg eax
sbb eax, eax
inc eax
cmp eax, ecx
je 0x460e28
xor eax, eax
cmp dword [ebp - 0x28], eax
mov edx, eax
je 0x460e2a
mov edx, ebx
xor ecx, ecx
mov eax, dword [ebp - 0x15c]
cmp dword [eax], edx
sete cl
sub ecx, 0xa0becc33
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x15c]
cmp dword [eax], ebx
jl 0x460e56
xor ecx, ecx
jmp 0x460e58
mov ecx, ebx
add ecx, 5
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setl dl
xor ecx, ecx
cmp edx, 0x220985a9
setg cl
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp ecx, eax
setne dl
imul edx, dword [ebp - 0x28]
add edx, dword [ebp - 0x3c]
mov dword [ebp - 0x50], edx
lea ecx, [ebp - 0x15c]
call fcn.0045cd39
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x38], 0x158018d9
mov dword [ebp - 0x5c], 0xfffffffc
mov dword [ebp - 0x20], 0x8af8716b
mov dword [ebp - 0x1c], 0x7d228d5f
mov dword [ebp - 0x18], 0x2b058efa
push 2
pop esi
push esi
lea ecx, [ebp - 0x29c]
call fcn.0045cc67
mov dword [ebp - 0x400], 0x162d50c8
mov dword [ebp - 0x3fc], 0x162d50c8
mov dword [ebp - 0x3f8], 0x162d50c8
mov dword [ebp - 0x3f4], 0x162d50c8
movdqa xmm0, xmmword [0xad0bb0]
movdqu xmmword [ebp - 0x7e8], xmm0
push ecx
lea eax, [ebp - 0x7d8]
push eax
push edi
lea ecx, [ebp - 0x634]
call fcn.0045cd13
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x18], 0
jmp 0x460f2f
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x29c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x460f20
mov dword [ebp - 0x18], 0
jmp 0x460f4e
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x328], 0xaa237f4a
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x460f3d
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0
jne 0x460f94
mov eax, dword [ebp - 0x29c]
xor edi, edi
cmp dword [eax], edi
je 0x460f6b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x634]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3f8]
dec dword [ebp - 0x3f8]
xor eax, eax
mov dword [ebp - 0x328], eax
cmp dword [ecx + 8], eax
jne 0x460f94
mov ecx, ebx
jmp 0x460f96
xor ecx, ecx
mov edx, dword [ebp - 0x634]
xor eax, eax
test ecx, ecx
sete al
xor ecx, ecx
cmp eax, 0x215f8f50
setle cl
xor eax, eax
cmp ecx, dword [edx + 8]
setg al
imul eax, eax, 0x6e30
mov esi, dword [ebp - 0x29c]
test eax, eax
je 0x460fce
cmp dword [esi], 0
je 0x460fce
mov eax, ebx
jmp 0x460fd0
xor eax, eax
cmp eax, 0x87642760
sbb eax, eax
inc eax
xor ecx, ecx
cmp eax, dword [edx + 8]
setg cl
imul ecx, dword [esi + 4]
add ecx, dword [edx + 0xc]
mov esi, dword [esi]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
sete dl
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setg cl
lea eax, [ecx + 3]
add eax, esi
xor ecx, ecx
cmp eax, esi
setne cl
add ecx, dword [ebp - 0x20]
jne 0x461049
mov eax, dword [ebp - 0x29c]
xor edi, edi
cmp dword [eax], edi
jne 0x461049
mov dword [ebp - 0x50], 0xffff
mov dword [ebp - 0x18], 0xffffffe2
jmp 0x46103e
mov dword [ebp - 0x50], 0x9616
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x50], 0xd6c1c926
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x12
jl 0x46102a
jmp 0x4611d6
mov dword [ebp - 0x38], 0xfffffff8
cmp dword [ebp - 0x38], 0xfffffff5
je 0x4611d6
xor eax, eax
mov dword [ebp - 0x58], 4
mov dword [ebp - 0x5c], eax
jmp 0x4611bf
mov dword [ebp - 0x28], 0xfb9d
mov dword [ebp - 0x18], 0xfffffffe
jmp 0x4611b2
cmp dword [ebp - 0x5c], 0xd
jne 0x46106b
dec dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0xfffffff5
jne 0x46105c
lea ecx, [ebp - 0x634]
call fcn.0045cd39
lea ecx, [ebp - 0x29c]
call fcn.0045cd39
xor eax, eax
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], eax
jg 0x461a29
push 2
lea ecx, [ebp - 0x228]
call fcn.0045cc67
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], 0xfffffff7
mov dword [ebp - 0x48], 0xc116e074
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x46123e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x228]
mov dword [eax + ecx*4], 0x6482
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x461223
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], eax
jl 0x46135c
mov dword [ebp - 0x14], 0xc345fe46
mov dword [ebp - 0x50], 0xcc895931
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], 0x7f4ea14c
mov dword [ebp - 0x34], 0xf40e13f5
push 4
lea ecx, [ebp - 0x554]
call fcn.0045cc67
push ebx
lea ecx, [ebp - 0x664]
call fcn.0045cc67
mov dword [ebp - 0x64], 0x734826aa
mov dword [ebp - 0x1c], 0
jmp 0x461a82
cmp dword [ebp - 0x1c], ebx
jl 0x461a71
mov dword [ebp - 0x440], 0x7e55059b
mov dword [ebp - 0x43c], 0x7e55059b
mov dword [ebp - 0x438], 0x7e55059b
mov dword [ebp - 0x434], 0x7e55059b
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0x40], 0xb6b0e1b1
mov dword [ebp - 0x18], 0
jmp 0x461bdd
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x420], 0xbe8f2100
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x461bcc
mov dword [ebp - 0x18], 0
jmp 0x461bfd
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x754], 0xfffffff7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x461bec
mov eax, dword [ebp - 0x420]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x43c]
add ecx, eax
mov eax, dword [ebp - 0x74c]
inc dword [ebp - 0x74c]
cmp eax, ecx
je 0x461c2e
mov eax, ebx
jmp 0x461c30
xor eax, eax
mov ecx, dword [ebp - 0x43c]
imul ecx, eax
mov eax, dword [ebp - 0x438]
sub ecx, eax
mov eax, dword [ebp - 0x420]
add eax, ecx
cmp eax, 0xfff9
sbb eax, eax
inc eax
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x2c], 0x1ab9
cmp dword [ebp - 0x2c], 0x1b06
jle 0x461cef
xor ebx, ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x48], 0x7861
xor esi, esi
xor edi, edi
mov eax, esi
cdq
idiv edi
mov eax, ebx
mov ecx, edx
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xbf8]
call fcn.00401993
pop ecx
pop ecx
mov ecx, eax
call fcn.0045cb47
push eax
call fcn.004c4197
pop ecx
push 0
push 1
lea ecx, [ebp - 0xbf8]
call fcn.0045d043
inc edi
cmp edi, 0xe16
jl 0x461c7e
inc esi
cmp esi, 0x6974
jl 0x461c7c
dec ebx
dec dword [ebp - 0x48]
jne 0x461c7a
mov ebx, dword [ebp - 0x3c]
inc ebx
mov dword [ebp - 0x3c], ebx
cmp ebx, 0x1cd0
jl 0x461c70
push 0x124d
push 0xd52
push 0
call dword [0xadf0d8]
mov dword [ebp - 0x20], 0
xor esi, esi
inc esi
cmp dword [ebp - 0x20], 0x1a
jne 0x4626bf
lea edi, [ebp - 0x5e0]
lea eax, [ebp - 0x5d0]
push 7
pop ebx
mov dword [ebp - 0x38], 0x5d6c05ba
mov dword [ebp - 0x38], 0xfffffff2
cmp dword [ebp - 0x38], 0x11
jg 0x461d60
mov dword [ebp - 0x14], 0xeede0b40
mov dword [ebp - 0x14], 0xe
jmp 0x461d4b
mov byte [ebp - 0x2d], 0
cmp byte [ebp - 0x2d], 0
je 0x461d48
push 0
call dword [0xadf2d0]
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffe3
jle 0x461d36
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0x11
jle 0x461d26
mov dword [ebp - 0x4c], 0x9babe4a9
movdqa xmm0, xmmword [0xad0bf0]
movdqu xmmword [ebp - 0x5e0], xmm0
push ecx
push eax
push edi
lea ecx, [ebp - 0x894]
call fcn.0045cd13
mov dword [ebp - 0x38], 9
push 3
lea ecx, [ebp - 0x8fc]
call fcn.0045cc67
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x461dbf
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x8fc]
mov dword [eax + ecx*4], 0x2961c0f8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x461da4
xor eax, eax
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x461dd1
push eax
call dword [0xadf230]
xor eax, eax
mov dword [ebp - 0x38], eax
jmp 0x461e3c
mov dword [ebp - 0x40], 0xec4279c4
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x40], 0x51cfd1f2
mov dword [ebp - 0x40], 0xec01e6e2
mov dword [ebp - 0x40], 0xfffffff6
mov dword [ebp - 0xb4], 4
mov dword [ebp - 0xb0], 4
mov dword [ebp - 0xac], 4
mov dword [ebp - 0xa8], 4
mov dword [ebp - 0x48], 0x76df7e44
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x894]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0x48]
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 3
jle 0x461dd6
lea ecx, [ebp - 0x8fc]
call fcn.0045cd39
lea ecx, [ebp - 0x894]
call fcn.0045cd39
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xfffffff3
jne 0x46248e
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x2c], 0x1961
jge 0x4626da
push 0xacb86c
call fcn.004c4197
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x462701
push 0xfffffffffffffffc
mov ebx, 0xffff
pop edi
push esi
lea ecx, [ebp - 0x4ac]
call fcn.0045cc67
mov dword [ebp - 0x14], 0xfffffff6
mov dword [ebp - 0x44], 0xf9f7
mov dword [ebp - 0x2c], 0xd972c40a
mov dword [ebp - 0x4c], 0xad3380ee
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], esi
jge 0x462755
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4ac]
mov dword [eax + ecx*4], 4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x46273b
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], eax
jg 0x462876
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], esi
jge 0x462780
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x348], esi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x46276c
mov dword [ebp - 0x348], 0xc8fc558b
mov dword [ebp - 0x20], 0xc8fc558b
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x46286e
mov ecx, esi
mov eax, dword [ebp - 0x4ac]
sub ecx, dword [eax]
cmp ecx, dword [ebp - 0x44]
je 0x46288f
cmp dword [ebp - 0x44], 0
je 0x46288f
xor eax, eax
mov dword [ebp - 0x4c], eax
lea ecx, [ebp - 0x4ac]
call fcn.0045cd39
mov dword [ebp - 0x54], 0x4a6847df
mov dword [ebp - 0x54], 0xffffffee
cmp dword [ebp - 0x54], 0xffffffe8
jne 0x462b47