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

Disassembly:
mov eax, 0x4b94fb
call fcn.004b89b8
push ecx
mov eax, 0x1158
call fcn.004b5360
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x68], dl
mov dword [ebp - 0x5c], ecx
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x18]
jle 0x451116
xor eax, eax
mov dword [ebp - 0x18], eax
or esi, 0xffffffff
xor edi, edi
inc edi
cmp dword [ebp - 0x18], 0x37
jne 0x451338
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], 0xefa20bd0
mov dword [ebp - 0x48], 0x336e
cmp dword [ebp - 0x48], 0x3576
jle 0x4510c2
mov esi, eax
mov dword [ebp - 0x38], esi
jmp 0x45105b
xor eax, eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x40], 0x5a06
jmp 0x451069
xor eax, eax
mov edi, eax
xor ebx, ebx
lea eax, [esi + edi]
cdq
push edx
push eax
lea ecx, [ebp - 0xbdc]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xbdc]
call fcn.0040986d
inc edi
cmp edi, 0x5e1b
jl 0x45106d
dec esi
dec dword [ebp - 0x40]
jne 0x451067
mov esi, dword [ebp - 0x38]
inc esi
mov dword [ebp - 0x38], esi
cmp esi, 0x1ef1
jl 0x451059
xor edi, edi
inc edi
or esi, 0xffffffff
jmp 0x4510c4
xor ebx, ebx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x48], 0x32ee
jge 0x4510e4
push 0xaa6d38
call fcn.004a3217
pop ecx
mov dword [ebp - 4], esi
jmp 0x45110c
inc dword [ebp - 0x18]
xor eax, eax
jmp 0x45102e
mov dword [ebp - 0x28], 0x5fb5
mov dword [ebp - 0x24], 0xfffffff9
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0
jne 0x451133
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], 0x49c3fcc4
imul ecx, dword [ebp - 0x24], 0x44ba
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setl dl
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], 0x3adb
mov dword [ebp - 0x20], 0xaa6da8
cmp dword [ebp - 0x50], 0x3ea0
jle 0x4511db
xor esi, esi
mov dword [ebp - 0x48], esi
xor ebx, ebx
mov edi, esi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x38], 0x56d1
mov esi, edi
mov edi, 0x58c3
mov eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x1008]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x1008]
call fcn.0040986d
dec esi
dec edi
jne 0x45118e
mov edi, dword [ebp - 0x40]
dec edi
mov dword [ebp - 0x40], edi
dec dword [ebp - 0x38]
jne 0x451187
mov esi, dword [ebp - 0x48]
inc esi
mov dword [ebp - 0x48], esi
cmp esi, 0x141b
jl 0x45117b
xor edi, edi
inc edi
mov dword [ebp - 0x28], 0x17
or esi, 0xffffffff
cmp dword [ebp - 0x28], 0xffffffee
jge 0x4512f5
push edi
lea ecx, [ebp - 0x82c]
call fcn.004091ed
mov dword [ebp - 0x34], 0x245e3460
mov dword [ebp - 0x40], 0x608a
cmp dword [ebp - 0x40], 0x631c
jle 0x451262
xor esi, esi
xor edi, edi
xor ebx, ebx
lea eax, [edi + esi]
cdq
push edx
push eax
lea ecx, [ebp - 0xc24]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xc24]
call fcn.0040986d
inc edi
cmp edi, 0x59f9
jl 0x45121b
inc esi
cmp esi, 0x6454
jl 0x451217
xor edi, edi
inc edi
or esi, 0xffffffff
mov dword [ebp - 0x38], 0x36fe0855
mov dword [ebp - 4], 2
cmp dword [ebp - 0x40], 0x5f6f
jge 0x451284
push 0xaa6dec
call fcn.004a3217
pop ecx
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x4512b0
mov dword [ebp - 0x14], eax
jmp 0x4512c8
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x82c]
mov dword [eax + ecx*4], 0x9dbe4fcd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4512b5
mov eax, dword [ebp - 0x4c]
inc eax
xor ecx, ecx
cmp eax, 0xfffffff7
setne cl
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x82c]
call fcn.004092bf
dec dword [ebp - 0x28]
jmp 0x4511e8
mov dword [ebp - 4], 4
cmp dword [ebp - 0x50], 0x3801
jge 0x45130e
push dword [ebp - 0x20]
call fcn.004a3217
pop ecx
mov dword [ebp - 4], esi
jmp 0x451336
xor eax, eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x34], 0x265a
mov dword [ebp - 0x14], 0xffffffea
jmp 0x451370
mov dword [ebp - 0x20], 0xfffffffb
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x451368
push eax
push eax
call dword [0xac3550]
xor eax, eax
cmp dword [ebp - 0x20], eax
jne 0x451376
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 8
jl 0x45134e
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x40], 0xfffffffc
mov dword [ebp - 0x50], 0xce9d05ba
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x8f8], xmm0
lea ecx, [ebp - 0x8f8]
lea eax, [ebp - 0x8e8]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x9d0]
call fcn.00409299
mov dword [ebp - 0x40], 0x7f825e7a
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x50], 0
jmp 0x4513d5
mov dword [ebp - 0x40], 9
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 3
jle 0x4513c2
lea ecx, [ebp - 0x9d0]
call fcn.004092bf
mov eax, dword [ebp - 0x54]
cmp eax, dword [ebp - 0x54]
jle 0x451964
mov dword [ebp - 0x18], 0x53606de7
mov dword [ebp - 0x40], 0x3eb905d0
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], 0x504ed09e
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], edi
jge 0x45142d
xor ebx, ebx
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x290], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x45141b
cmp dword [ebp - 0x18], 0
jne 0x45147b
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setg dl
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, 0xdbc1c234
sub ecx, eax
sub ecx, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x18]
sub ecx, 0x2a30
je 0x451470
cmp dword [ebp - 0x24], 0
je 0x451470
mov eax, edi
jmp 0x451472
xor eax, eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0
jne 0x451487
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x40], eax
xor ebx, ebx
mov dword [ebp - 0x290], ebx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
test eax, eax
sets cl
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x54], ebx
cmp dword [ebp - 0x54], 0x37
jne 0x451a18
mov dword [ebp - 0x28], 0xf70ad6f2
push 3
lea ecx, [ebp - 0x358]
call fcn.004091ed
push 4
lea ecx, [ebp - 0x5b0]
call fcn.004091ed
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x18], 0
jmp 0x451506
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x358]
mov dword [eax + ecx*4], 0x89b5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4514f3
mov dword [ebp - 0x18], 0
jmp 0x451528
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x5b0]
mov dword [eax + ecx*4], 0xfffffffc
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x451515
inc dword [ebp - 0x28]
mov dword [ebp - 0x4c], 0x6528
cmp dword [ebp - 0x4c], 0x66c4
jle 0x451594
push 0x1c47
push 0x24a5
push 0x1374
push 0xa95
push 0x133d
call dword [0xac3144]
xor esi, esi
xor edi, edi
lea eax, [edi + esi]
cdq
push edx
push eax
mov ecx, 0xac0918
call fcn.00408e98
inc edi
cmp edi, 0x15b6
jl 0x451564
inc esi
cmp esi, 0x6df6
jl 0x451562
push 0x19ac
call dword [0xac316c]
xor edi, edi
inc edi
mov dword [ebp - 0x28], 0
cmp dword [ebp - 0x28], 2
jg 0x4517b8
mov dword [ebp - 0x50], 0x7c8748af
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], 0xfffffffe
push 2
lea ecx, [ebp - 0x844]
call fcn.004091ed
mov dword [ebp - 0x3c], 0x2c51978e
mov dword [ebp - 0x14], 0
jmp 0x4515e6
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x844]
mov dword [eax + ecx*4], 0xd1c58bdf
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4515d3
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x358]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov dword [ebp - 0x24], 0x158f
cmp dword [ebp - 0x24], 0x18e2
jle 0x4516ae
xor ebx, ebx
push ebx
push 0x1f92
call dword [0xac3524]
xor edi, edi
mov dword [ebp - 0x38], edi
xor esi, esi
mov dword [ebp - 0x40], esi
and dword [ebp - 0x20], 0
mov eax, edi
cdq
idiv esi
mov dword [ebp - 0x14], edx
mov esi, 0x4580
xor ebx, ebx
mov edi, dword [ebp - 0x20]
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xed0]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xed0]
call fcn.0040986d
add edi, dword [ebp - 0x14]
dec esi
jne 0x451640
mov esi, dword [ebp - 0x40]
inc esi
mov dword [ebp - 0x40], esi
cmp esi, 0x5408
mov edi, dword [ebp - 0x38]
jl 0x45162a
inc edi
mov dword [ebp - 0x38], edi
cmp edi, 0x68bb
jl 0x451625
xor eax, eax
push eax
push eax
push 0x1242
push 0x2548
push 0x6a0
call dword [0xac3424]
xor edi, edi
inc edi
mov dword [ebp - 0x50], 0
or esi, 0xffffffff
cmp dword [ebp - 0x50], 2
jg 0x451762
mov dword [ebp - 0x34], 0x5c6eff3d
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x20], 0x9e843631
mov dword [ebp - 0x34], 0x8b78acc4
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x20], 0x4309642e
inc dword [ebp - 0x48]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, 0x6f79b347
setge cl
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp eax, ecx
setg dl
mov eax, dword [ebp - 0x50]
xor ebx, ebx
cmp edx, eax
setge bl
sub ebx, 0xcc0136ef
neg ebx
sbb ebx, ebx
inc ebx
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, ebx
setl cl
xor eax, eax
cmp ecx, 4
setne al
cmp eax, dword [ebp - 0x20]
jg 0x451746
mov eax, dword [ebp - 0x5b0]
xor ebx, ebx
cmp dword [eax + 4], ebx
je 0x451746
mov edx, edi
jmp 0x451748
xor edx, edx
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x358]
mov eax, dword [eax + ecx*4]
imul eax, edx
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x50]
jmp 0x4516b8
mov dword [ebp - 4], 6
cmp dword [ebp - 0x24], 0x1399
jge 0x45177d
push 0xaa6ebc
call fcn.004a3217
pop ecx
mov dword [ebp - 4], esi
jmp 0x4517a5
lea ecx, [ebp - 0x844]
call fcn.004092bf
inc dword [ebp - 0x28]
jmp 0x45159b
mov dword [ebp - 4], 8
cmp dword [ebp - 0x4c], 0x64e8
jge 0x4517d7
mov edx, 0xaa6e90
mov ecx, 0xac0918
call fcn.0040bb10
or esi, 0xffffffff
mov dword [ebp - 4], esi
jmp 0x451802
lea ecx, [ebp - 0x5b0]
call fcn.004092bf
lea ecx, [ebp - 0x358]
call fcn.004092bf
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x40], 0xefa20bd0
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x40], 0x34a938f7
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x45184e
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x260], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x45183a
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], eax
jl 0x451874
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x45186f
push eax
push eax
push eax
push 0xe12
call dword [0xac3084]
xor eax, eax
dec dword [ebp - 0x18]
jns 0x451856
mov dword [ebp - 0x18], 0x19
jmp 0x451949
mov dword [ebp - 0x24], 0x27d2
mov dword [ebp - 0x40], 0x906d8bc0
mov dword [ebp - 0x40], 5
mov dword [ebp - 0x14], eax
jmp 0x4518ab
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x928], 0xfffffffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x45189a
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x451922
cmp dword [ebp - 0x18], eax
jne 0x451909
mov dword [ebp - 0x260], 0xa4cc
mov eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, 0x7d0b0a35
setle cl
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x18]
jl 0x451909
xor ebx, ebx
jmp 0x45190b
mov ebx, edi
mov eax, dword [ebp - 0x18]
sub ebx, eax
mov eax, dword [ebp - 0x18]
add eax, 0x2a284868
add eax, ebx
jne 0x451920
mov eax, edi
jmp 0x451922
xor eax, eax
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x920]
xor edx, edx
cmp ecx, eax
setl dl
xor eax, eax
cmp edx, 6
setle al
mov dword [ebp - 0x928], eax
dec dword [ebp - 0x18]
push 0
pop eax
cmp dword [ebp - 0x18], 0xf
jne 0x451880
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x40], eax
inc dword [ebp - 0x54]
jmp 0x4514bc
mov dword [ebp - 0x18], 0x5fb5
mov dword [ebp - 0x24], 0xfffffff9
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0
jne 0x451981
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x24], 0x49c3fcc4
imul ecx, dword [ebp - 0x24], 0x44ba
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setl dl
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x18], 0x17
jmp 0x451a12
push edi
lea ecx, [ebp - 0x85c]
call fcn.004091ed
mov dword [ebp - 0x34], 0x245e3460
mov dword [ebp - 0x38], 0x36fe0855
mov dword [ebp - 0x14], 0
jmp 0x4519ea
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x85c]
mov dword [eax + ecx*4], 0x9dbe4fcd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4519d7
mov eax, dword [ebp - 0x40]
inc eax
xor ecx, ecx
cmp eax, 0xfffffff7
setne cl
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x85c]
call fcn.004092bf
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffee
jl 0x4519b4
mov dword [ebp - 0x4c], 9
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0xffffffe9
jg 0x451bee
mov dword [ebp - 0x24], 0xfffffffc
mov dword [ebp - 0x38], 0x531d
cmp dword [ebp - 0x38], 0x54df
jle 0x451a96
mov esi, eax
mov dword [ebp - 0x40], esi
xor ebx, ebx
mov edi, esi
mov esi, 0x3d5c
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xc54]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xc54]
call fcn.0040986d
dec edi
dec esi
jne 0x451a53
mov esi, dword [ebp - 0x40]
inc esi
mov dword [ebp - 0x40], esi
cmp esi, 0x3894
jl 0x451a4c
xor eax, eax
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x451aaa
push eax
push eax
push eax
push eax
push eax
call dword [0xac33ac]
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x38], 0x5059
jge 0x451ac5
push 0xaa6ee8
call fcn.004a3217
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
xor eax, eax
xor edi, edi
inc edi
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0xfffffff2
jle 0x451be4
mov dword [ebp - 0x38], 0x6767
cmp dword [ebp - 0x38], 0x686f
jle 0x451b6c
mov dword [ebp - 0x14], eax
mov edi, eax
mov esi, eax
mov ecx, eax
mov dword [ebp - 0x40], ecx
mov eax, edi
cdq
idiv esi
mov eax, edx
mov dword [ebp - 0x20], eax
xor ebx, ebx
sar eax, cl
and eax, dword [ebp - 0x14]
cdq
push edx
push eax
lea ecx, [ebp - 0x10bc]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x10bc]
call fcn.0040986d
mov ecx, dword [ebp - 0x40]
inc ecx
mov dword [ebp - 0x40], ecx
cmp ecx, 0x1c14
mov eax, dword [ebp - 0x20]
jl 0x451b05
inc esi
cmp esi, 0x8cd
push 0
pop eax
jl 0x451af4
inc edi
cmp edi, 0x436d
jl 0x451af2
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x1c21
jl 0x451af0
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x451b82
push eax
push 0x1a12
push eax
call dword [0xac33cc]
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x38], 0x663a
jge 0x451b9d
push 0xaa6f70
call fcn.004a3217
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
xor edi, edi
inc edi
dec dword [ebp - 0x24]
xor eax, eax
jmp 0x451ad3
dec dword [ebp - 0x4c]
xor eax, eax
jmp 0x451a24
mov dword [ebp - 0x2c], eax
push 2
lea ecx, [ebp - 0x1b0]
call fcn.004091ed
mov dword [ebp - 0x28], 0xdf2f4a8b
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x451c2e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1b0]
mov dword [eax + ecx*4], 0xf0ea75c9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x451c13
xor eax, eax
mov dword [ebp - 0x28], edi
cmp dword [ebp - 0x28], eax
jl 0x451e9c
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x451c58
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x168], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x451c43
xor eax, eax
mov dword [ebp - 0x38], 0x34c
cmp dword [ebp - 0x38], 0x5a6
jle 0x451ca5
mov edi, eax
mov ebx, eax
mov dword [ebp - 0x40], 0x7a73
mov esi, eax
mov eax, esi
or eax, ebx
cdq
push edx
push eax
mov ecx, 0xac0918
call fcn.00408e98
inc esi
cmp esi, 0x69a7
jl 0x451c75
add ebx, edi
dec dword [ebp - 0x40]
push 0
pop eax
jne 0x451c73
inc edi
cmp edi, 0x2643
jl 0x451c6a
xor edi, edi
inc edi
mov dword [ebp - 0x168], edi
xor eax, eax
cmp dword [ebp - 0x168], eax
jl 0x451e48
mov dword [ebp - 0x3c], 8
mov dword [ebp - 0x20], 0xb2e809b4
mov dword [ebp - 0x40], 0x2bb3
cmp dword [ebp - 0x40], 0x2f5f
jle 0x451d11
mov ebx, eax
mov edi, eax
mov esi, eax
mov eax, esi
and eax, edi
or eax, ebx
cdq
push edx
push eax
mov ecx, 0xac0918
call fcn.00408e98
inc esi
cmp esi, 0x6279
jl 0x451cdd
inc edi
cmp edi, 0x6f95
push 0
pop eax
jl 0x451cdb
inc ebx
cmp ebx, 0x4e37
jl 0x451cd9
xor edi, edi
inc edi
mov dword [ebp - 0x3c], edi
cmp dword [ebp - 0x3c], eax
jl 0x451df7
mov dword [ebp - 0x50], 0x7d373ee7
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1b0]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x50], eax
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x50]
add eax, dword [ecx + edx*4]
je 0x451d58
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x168]
cmp eax, dword [ecx + edx*4]
jge 0x451d5b
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x3c]
xor eax, eax
cmp dword [ebp - 0x28], eax
jne 0x451d70
cmp dword [ebp - 0x168], eax
je 0x451d72
mov eax, edi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x168]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x1b0]
cmp dword [ecx + eax*4], 0xdd484073
sbb eax, eax
neg eax
mov dword [ecx + edx*4], eax
mov dword [ebp - 0x50], 0xffffffe6
jmp 0x451de1
push 3
lea ecx, [ebp - 0x370]
call fcn.004091ed
mov dword [ebp - 0x14], 0
jmp 0x451dc0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x370]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x451db1
mov eax, dword [ebp - 0x370]
xor ebx, ebx
lea ecx, [ebp - 0x370]
cmp dword [eax + 4], ebx
jne 0x451de9
call fcn.004092bf
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 0xffffffe6
jne 0x451d9b
jmp 0x451dee
call fcn.004092bf
dec dword [ebp - 0x3c]
jns 0x451d1d
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x40], 0x281a
jge 0x451e16
mov edx, 0xaa7020
mov ecx, 0xac0918
call fcn.0040bb10
or dword [ebp - 4], 0xffffffff
jmp 0x451e3d
dec dword [ebp - 0x168]
jmp 0x451cab
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x38], 0x18a
jge 0x451e67
mov edx, 0xaa6fc8
mov ecx, 0xac0918
call fcn.0040bb10
or esi, 0xffffffff
mov dword [ebp - 4], esi
jmp 0x451e92
dec dword [ebp - 0x28]
xor eax, eax
jmp 0x451c31
lea ecx, [ebp - 0x1b0]
call fcn.004092bf
xor ebx, ebx
mov dword [ebp - 0x54], ebx
push edi
lea ecx, [ebp - 0x2bc]
call fcn.004091ed
mov dword [ebp - 0x18], 0xb0b02971
mov dword [ebp - 0x4c], 0x732adaa2
push 4
lea ecx, [ebp - 0x4b4]
call fcn.004091ed
mov dword [ebp - 0x40], 0xfffffff8
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x50], 0x97911697
mov dword [ebp - 0x3c], 0xe785
mov dword [ebp - 0x40], 0xfffffffd
mov dword [ebp - 0x54], ebx
jmp 0x451f0a
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x2bc]
mov dword [eax + ecx*4], 0xe91a
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], edi
jl 0x451ef7
mov dword [ebp - 0x54], ebx
jmp 0x451f25
mov eax, dword [ebp - 0x54]
mov dword [ebp + eax*4 - 0x188], 0xfffffff7
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 2
jl 0x451f14
mov dword [ebp - 0x48], 0x39ce
cmp dword [ebp - 0x48], 0x3d1d
jle 0x451fd0
xor eax, eax
mov dword [ebp - 0x24], eax
xor ecx, ecx
mov dword [ebp - 0x38], ecx
xor esi, esi
mov dword [ebp - 0x40], esi
cdq
idiv ecx
mov dword [ebp - 0x20], edx
xor edi, edi
mov ecx, esi
mov esi, edx
sar esi, cl
xor ebx, ebx
mov eax, esi
and eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xc84]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xc84]
call fcn.0040986d
inc edi
cmp edi, 0x6fef
jl 0x451f5e
mov esi, dword [ebp - 0x40]
inc esi
mov dword [ebp - 0x40], esi
cmp esi, 0x5635
mov edx, dword [ebp - 0x20]
jl 0x451f54
mov ecx, dword [ebp - 0x38]
inc ecx
mov dword [ebp - 0x38], ecx
cmp ecx, 0x62d6
mov eax, dword [ebp - 0x24]
jl 0x451f49
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x6e08
jl 0x451f44
xor edi, edi
inc edi
or esi, 0xffffffff
mov dword [ebp - 0x54], 0
jmp 0x451fec
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x4b4]
mov dword [eax + ecx*4], 0x524
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 4
jl 0x451fd9
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x48], 0x398c
jge 0x45200d
push 0xaa7068
call fcn.004a3217
pop ecx
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x452039
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 3
jge 0x452057
mov eax, dword [ebp - 0x54]
mov dword [ebp + eax*4 - 0xb64], edi
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 3
jl 0x452042
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x452117
mov dword [ebp - 0x24], 0x6411d7fe
mov dword [ebp - 0x20], 0x1a6f3221
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2bc]
xor ebx, ebx
cmp dword [eax + ecx*4], ebx
jne 0x4520fa
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2bc]
mov eax, dword [ebp - 0x24]
cmp dword [ecx + edx*4], eax
setl bl
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp ebx, eax
setle cl
add ecx, 0x2d517a7f
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x184], ecx
mov edx, dword [ebp - 0x4b4]
lea eax, [ecx + 6]
xor ecx, ecx
cmp eax, dword [edx + 0xc]
setge cl
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x184], 9
jne 0x4520d3
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
xor eax, eax
cmp dword [ebp - 0x50], eax
je 0x4520ec
cmp dword [ebp - 0x3c], eax
je 0x4520ec
cmp dword [ebp - 0x40], eax
mov ecx, edi
jne 0x4520ee
mov ecx, eax
cmp ecx, dword [ebp - 0x24]
jle 0x4520fa
cmp dword [edx + 0xc], eax
mov ecx, eax
je 0x4520fc
mov ecx, edi
xor eax, eax
cmp ecx, 0xf75d
setl al
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x40], eax
xor eax, eax
cmp dword [ebp - 0x20], eax
jne 0x452120
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], eax
jle 0x45205f
mov edx, dword [ebp - 0x4c]
sub edx, 0xb6910c33
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x184]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x184], ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x40], 0x8af80453
lea ecx, [ebp - 0x4b4]
call fcn.004092bf
lea ecx, [ebp - 0x2bc]
call fcn.004092bf
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x2c]
jle 0x452352
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x34], 0x265a
mov dword [ebp - 0x14], 0xffffffea
jmp 0x4521a4
mov dword [ebp - 0x20], 0xfffffffb
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x45219c
push eax
push eax
call dword [0xac3550]
xor eax, eax
cmp dword [ebp - 0x20], eax
jne 0x4521aa
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 8
jl 0x452182
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x37
jne 0x452317
lea eax, [ebp - 0x634]
lea ecx, [ebp - 0x624]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x40], 0xfffffffc
mov dword [ebp - 0x50], 0xce9d05ba
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x634], xmm0
push ecx
push ecx
push eax
lea ecx, [ebp - 0x9f4]
call fcn.00409299
mov dword [ebp - 0x40], 0x7f825e7a
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x50], 0
jmp 0x452216
mov dword [ebp - 0x40], 9
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 3
jle 0x452203
lea ecx, [ebp - 0x9f4]
call fcn.004092bf
mov dword [ebp - 0x20], 0xefa20bd0
mov dword [ebp - 0x18], 0x53606de7
mov dword [ebp - 0x40], 0x3eb905d0
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], 0x504ed09e
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], edi
jge 0x452269
xor ebx, ebx
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x23c], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x452257
cmp dword [ebp - 0x18], 0
jne 0x4522b7
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setg dl
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, 0xdbc1c234
sub ecx, eax
sub ecx, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x18]
sub ecx, 0x2a30
je 0x4522ac
cmp dword [ebp - 0x24], 0
je 0x4522ac
mov eax, edi
jmp 0x4522ae
xor eax, eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0
jne 0x4522c3
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x40], eax
xor ebx, ebx
mov dword [ebp - 0x23c], ebx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
test eax, eax
sets cl
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0x37
lea eax, [ebp - 0x634]
lea ecx, [ebp - 0x624]
je 0x4521c3
push 7
pop ebx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x34], 0xfffffffe
mov dword [ebp - 0x34], 0x9a3df603
mov dword [ebp - 0x34], 4
push 3
lea ecx, [ebp - 0x684]
call fcn.004091ed
mov dword [ebp - 0x40], 0xfbb6
mov dword [ebp - 0x14], 0
jmp 0x4535a5
mov dword [ebp - 0x28], 0xf70ad6f2
push 3
lea ecx, [ebp - 0x388]
call fcn.004091ed
push 4
lea ecx, [ebp - 0x4cc]
call fcn.004091ed
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x18], 0
jmp 0x452392
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x388]
mov dword [eax + ecx*4], 0x89b5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x45237f
mov dword [ebp - 0x18], 0
jmp 0x4523b4
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4cc]
mov dword [eax + ecx*4], 0xfffffffc
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x4523a1
inc dword [ebp - 0x28]
mov dword [ebp - 0x28], 0
jmp 0x4524e1
mov dword [ebp - 0x50], 0x7c8748af
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x38], 0xfffffffe
push 2
lea ecx, [ebp - 0x874]
call fcn.004091ed
mov dword [ebp - 0x20], 0x2c51978e
mov dword [ebp - 0x14], 0
jmp 0x45240a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x874]
mov dword [eax + ecx*4], 0xd1c58bdf
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4523f7
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x388]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov dword [ebp - 0x50], 0
jmp 0x4524c9
mov dword [ebp - 0x34], 0x5c6eff3d
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x48], 0x9e843631
mov dword [ebp - 0x34], 0x8b78acc4
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x48], 0x4309642e
inc dword [ebp - 0x40]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, 0x6f79b347
setge cl
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp eax, ecx
setg dl
mov eax, dword [ebp - 0x50]
xor ebx, ebx
cmp edx, eax
setge bl
sub ebx, 0xcc0136ef
neg ebx
sbb ebx, ebx
inc ebx
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp eax, ebx
setl cl
xor eax, eax
cmp ecx, 4
setne al
cmp eax, dword [ebp - 0x48]
jg 0x4524b2
mov eax, dword [ebp - 0x4cc]
xor ebx, ebx
cmp dword [eax + 4], ebx
je 0x4524b2
mov edx, edi
jmp 0x4524b4
xor edx, edx
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x388]
mov eax, dword [eax + ecx*4]
imul eax, edx
mov dword [ebp - 0x48], eax
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 2
jle 0x45242e
lea ecx, [ebp - 0x874]
call fcn.004092bf
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jle 0x4523c9
lea ecx, [ebp - 0x4cc]
call fcn.004092bf
lea ecx, [ebp - 0x388]
call fcn.004092bf
mov dword [ebp - 0x28], 0x5fb5
mov dword [ebp - 0x38], 0x4913
cmp dword [ebp - 0x38], 0x4bed
jle 0x452555
xor edi, edi
mov dword [ebp - 0x40], edi
xor esi, esi
mov ebx, edi
mov edi, 0x21f7
mov eax, ebx
cdq
push edx
push eax
mov ecx, 0xac0918
call fcn.00408e98
add ebx, esi
dec edi
jne 0x452526
dec esi
cmp esi, 0xffffa685
mov edi, dword [ebp - 0x40]
jg 0x45251f
inc edi
mov dword [ebp - 0x40], edi
cmp edi, 0x14f9
jl 0x45251d
xor edi, edi
inc edi
mov dword [ebp - 0x18], 9
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x38], 0x464c
jge 0x45257b
mov edx, 0xaa70e4
mov ecx, 0xac0918
call fcn.0040bb10
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x4525a6
mov dword [ebp - 0x40], 0x34a938f7
mov dword [ebp - 0x38], 0x2b43
cmp dword [ebp - 0x38], 0x2c82
jle 0x452657
mov edx, eax
mov dword [ebp - 0x24], edx
jmp 0x4525ca
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x4c], ecx
jmp 0x4525d3
xor eax, eax
mov esi, eax
mov dword [ebp - 0x40], esi
jmp 0x4525dc
xor eax, eax
mov edi, eax
lea eax, [ecx + edx]
xor eax, esi
mov dword [ebp - 0x20], eax
xor ebx, ebx
mov esi, eax
mov eax, esi
or eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xad4]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xad4]
call fcn.0040986d
inc edi
cmp edi, 0x5a0e
jl 0x4525ea
mov esi, dword [ebp - 0x40]
inc esi
mov dword [ebp - 0x40], esi
cmp esi, 0x22ee
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x24]
jl 0x4525da
inc ecx
mov dword [ebp - 0x4c], ecx
cmp ecx, 0x5390
jl 0x4525d1
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xa78
jl 0x4525c8
xor edi, edi
inc edi
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x38], 0x2a4e
jge 0x452672
push 0xaa7150
call fcn.004a3217
pop ecx
or ecx, 0xffffffff
mov dword [ebp - 4], ecx
xor eax, eax
jmp 0x4526a1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x4526bd
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x27c], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4526a9
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], eax
jl 0x4526e3
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x4526de
push eax
push eax
push eax
push 0xe12
call dword [0xac3084]
xor eax, eax
dec dword [ebp - 0x18]
jns 0x4526c5
mov dword [ebp - 0x38], 0x3174
cmp dword [ebp - 0x38], 0x32da
jle 0x452742
mov ecx, eax
mov dword [ebp - 0x14], eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [esi + edi]
xor eax, ebx
xor eax, ecx
cdq
push edx
push eax
mov ecx, 0xac0918
call fcn.00408e98
inc esi
cmp esi, 0x6e1
mov ecx, dword [ebp - 0x14]
jl 0x4526fe
inc edi
cmp edi, 0x26cb
push 0
pop eax
jl 0x4526fc
inc ebx
cmp ebx, 0x76e4
jl 0x4526fa
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x6690
jl 0x4526f8
xor edi, edi
inc edi
mov dword [ebp - 0x18], 0x19
jmp 0x452818
mov dword [ebp - 0x24], 0x27d2
mov dword [ebp - 0x40], 0x906d8bc0
mov dword [ebp - 0x40], 5
mov dword [ebp - 0x14], 0
jmp 0x45277d
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x9a8], 0xfffffffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x45276c
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
xor eax, eax
cmp dword [ebp - 0x24], eax
je 0x4527f4
cmp dword [ebp - 0x18], eax
jne 0x4527db
mov dword [ebp - 0x27c], 0xa4cc
mov eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp eax, 0x7d0b0a35
setle cl
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x18]
jl 0x4527db
xor ecx, ecx
jmp 0x4527dd
mov ecx, edi
mov eax, dword [ebp - 0x18]
sub ecx, eax
mov eax, dword [ebp - 0x18]
add eax, 0x2a284868
add eax, ecx
jne 0x4527f2
mov eax, edi
jmp 0x4527f4
xor eax, eax
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x9a0]
xor edx, edx
cmp ecx, eax
setl dl
xor eax, eax
cmp edx, 6
setle al
mov dword [ebp - 0x9a8], eax
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xf
jne 0x45274e
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x38], 0x310a
jge 0x452841
mov edx, 0xaa71ac
mov ecx, 0xac0918
call fcn.0040bb10
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x45286c
mov dword [ebp - 0x24], 0xfffffff9
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0
jne 0x452882
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], 0x49c3fcc4
imul ecx, dword [ebp - 0x24], 0x44ba
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setl dl
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], ebx
push 2
lea ecx, [ebp - 0x4e4]
call fcn.004091ed
mov dword [ebp - 0x14], 0
jmp 0x4528d8
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4e4]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4528c5
mov dword [ebp - 0x50], 0x16
jmp 0x452987
mov dword [ebp - 0x18], 0xcbad86e5
mov dword [ebp - 0x14], 0
jmp 0x45290b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x7d8], 0x16aac895
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4528fa
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x18], 0
jl 0x452984
cmp dword [ebp - 0x18], 0x3b37
jge 0x452929
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x50]
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0xf746
setne cl
sub ecx, dword [ebp - 0x18]
xor eax, eax
mov esi, dword [ebp - 0x4e4]
cmp ecx, dword [esi + edx*4]
setge al
neg eax
sub eax, 0xfffffff9
neg eax
sbb eax, eax
inc eax
xor ecx, ecx
cmp dword [esi + edi*4], eax
sete cl
add ecx, dword [esi + ebx*4]
xor eax, eax
mov edx, dword [ebp - 0x20]
cmp ecx, dword [esi + edx*4]
setl al
mov dword [ebp - 0x7d8], eax
dec dword [ebp - 0x18]
jns 0x45291a
xor edi, edi
inc edi
dec dword [ebp - 0x50]
cmp dword [ebp - 0x50], 0xfffffffc
jl 0x4528ea
mov byte [ebp - 0x41], 0
cmp byte [ebp - 0x41], 0
je 0x4529ab
push 0x1ef
push 0x4b1
call dword [0xac3104]
lea ecx, [ebp - 0x4e4]
call fcn.004092bf
mov dword [ebp - 0x28], 0x17
push 7
pop ebx
cmp dword [ebp - 0x28], 0xffffffee
jge 0x45231a
push edi
lea ecx, [ebp - 0x88c]
call fcn.004091ed
mov dword [ebp - 0x34], 0x245e3460
mov dword [ebp - 0x40], 0x4c67
cmp dword [ebp - 0x40], 0x4cc2
jle 0x452a3f
xor edi, edi
xor esi, esi
xor ebx, ebx
mov eax, esi
or eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xcb4]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xcb4]
call fcn.0040986d
inc esi
cmp esi, 0x63d7
jl 0x4529f3
inc edi
cmp edi, 0x5fc1
jl 0x4529ef
push ebx
call dword [0xac341c]
xor edi, edi
inc edi
mov dword [ebp - 4], 0x1a
cmp dword [ebp - 0x40], 0x4939
jge 0x452a5a
push 0xaa71e4
call fcn.004a3217
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
jmp 0x452a85
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], 0x47a6deec
mov dword [ebp - 0x4c], 0x328f6c74
mov dword [ebp - 0x2b0], 0x2276b87d
mov dword [ebp - 0x2ac], 0x2276b87d
mov dword [ebp - 0x2a8], 0x2276b87d
mov dword [ebp - 0x2a4], 0x2276b87d
mov dword [ebp - 0x34], 9
push 4
lea ecx, [ebp - 0x55c]
call fcn.004091ed
push 3
lea ecx, [ebp - 0x4fc]
call fcn.004091ed
mov dword [ebp - 0x3c], 0x407293cc
mov dword [ebp - 0x18], 0
jmp 0x452b02
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x55c]
mov dword [eax + ecx*4], 0x401d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x452aef
mov dword [ebp - 0x18], 0
jmp 0x452b20
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4fc]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x452b11
mov eax, dword [ebp - 0x2b0]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2ac]
dec eax
neg eax
sbb eax, eax
inc eax
add dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x4fc]
inc dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x2a4]
dec eax
xor ecx, ecx
cmp eax, 8
setne cl
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp eax, ecx
setge dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setge cl
add ecx, 4
je 0x452cae
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x50], 0x1dc
cmp dword [ebp - 0x50], 0x4fa
jle 0x452c17
and dword [ebp - 0x4c], 0
and dword [ebp - 0x38], 0
mov dword [ebp - 0x48], 0x5924
xor edi, edi
mov dword [ebp - 0x40], 0x70e4
xor esi, esi
xor ebx, ebx
mov eax, edi
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x1038]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x1038]
call fcn.0040986d
inc esi
cmp esi, 0x1c16
jl 0x452bb3
mov ecx, dword [ebp - 0x38]
add edi, ecx
dec dword [ebp - 0x40]
jne 0x452baf
mov eax, dword [ebp - 0x4c]
add ecx, eax
mov dword [ebp - 0x38], ecx
dec dword [ebp - 0x48]
jne 0x452ba6
inc eax
mov dword [ebp - 0x4c], eax
cmp eax, 0x5efa
jl 0x452b9b
xor edi, edi
inc edi
or esi, 0xffffffff
cmp dword [ebp - 0x14], 0
je 0x452c5b
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
neg eax
sbb eax, eax
neg eax
add eax, dword [ebp - 0x14]
cmp eax, 0x45b6
jge 0x452c42
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x3c], 0
jne 0x452c57
mov eax, dword [ebp - 0x55c]
xor ebx, ebx
cmp dword [eax], ebx
je 0x452c5b
mov edx, edi
jmp 0x452c5d
xor edx, edx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [ebp - 0x24], ecx
mov dword [ebp - 4], 0x1c
cmp dword [ebp - 0x50], 0xffffff8f
jge 0x452c82
push 0xaa7254
call fcn.004a3217
pop ecx
mov dword [ebp - 4], esi
jmp 0x452cda
mov dword [ebp - 0x14], 0
jmp 0x452cc8
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x258], 0xfd39ef5b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x452cb7
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x3c], 0
xor eax, eax
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x452cf1
push 0x22ee
push eax
call dword [0xac3328]
lea ecx, [ebp - 0x4fc]
call fcn.004092bf
lea ecx, [ebp - 0x55c]
call fcn.004092bf
mov dword [ebp - 0x40], 0x36fe0855
mov dword [ebp - 0x30], 0xf70ad6f2
push 3
lea ecx, [ebp - 0x3a0]
call fcn.004091ed
push 4
lea ecx, [ebp - 0x574]
call fcn.004091ed
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x18], 0
jmp 0x452d4e
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3a0]
mov dword [eax + ecx*4], 0x89b5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x452d3b
mov dword [ebp - 0x18], 0
jmp 0x452d70
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x574]
mov dword [eax + ecx*4], 0xfffffffc
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x452d5d
inc dword [ebp - 0x30]
mov dword [ebp - 0x30], 0
cmp dword [ebp - 0x30], 2
jg 0x4530a5
mov dword [ebp - 0x50], 0x7c8748af
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x4c], 0x107c
cmp dword [ebp - 0x4c], 0x1462
jle 0x452e3d
xor eax, eax
mov dword [ebp - 0x24], eax
xor edi, edi
mov dword [ebp - 0x48], edi
mov eax, edi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x38], 0x135
mov edi, dword [ebp - 0x24]
xor esi, esi
mov edx, edi
mov ecx, eax
sar edx, cl
mov dword [ebp - 0x20], edx
xor ebx, ebx
mov eax, esi
or eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xce4]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xce4]
call fcn.0040986d
inc esi
cmp esi, 0x7875
mov edx, dword [ebp - 0x20]
jl 0x452dce
mov eax, dword [ebp - 0x40]
dec eax
mov dword [ebp - 0x40], eax
dec dword [ebp - 0x38]
jne 0x452dc1
mov edi, dword [ebp - 0x48]
inc edi
mov dword [ebp - 0x48], edi
cmp edi, 0x193b
jl 0x452db2
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x1d24
jl 0x452dad
xor edi, edi
inc edi
or esi, 0xffffffff
mov dword [ebp - 0x38], 0xfffffffe
mov dword [ebp - 4], 0x1e
cmp dword [ebp - 0x4c], 0x103d
jge 0x452e5f
push 0xaa729c
call fcn.004a3217
pop ecx
mov dword [ebp - 4], esi
jmp 0x452e85
push 2
lea ecx, [ebp - 0x65c]
call fcn.004091ed
mov dword [ebp - 0x20], 0x2c51978e
mov dword [ebp - 0x40], 0x8c8
cmp dword [ebp - 0x40], 0xc7d
jle 0x452ed6
xor edi, edi
xor esi, esi
mov eax, edi
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
mov ecx, 0xac0918
call fcn.00408e98
inc esi
cmp esi, 0x39d4
jl 0x452ead
inc edi
cmp edi, 0x2809
jl 0x452eab
xor edi, edi
inc edi
mov dword [ebp - 4], 0x20
cmp dword [ebp - 0x40], 0x626
jge 0x452ef5
mov edx, 0xaa72e0
mov ecx, 0xac0918
call fcn.0040bb10
or esi, 0xffffffff
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x452f24
mov dword [ebp - 0x14], eax
jmp 0x452f3c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x65c]
mov dword [eax + ecx*4], 0xd1c58bdf
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x452f29
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x3a0]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov dword [ebp - 0x50], 0
cmp dword [ebp - 0x50], 2
jg 0x453092
mov dword [ebp - 0x34], 0x5c6eff3d
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x40], 0x9e843631
mov dword [ebp - 0x34], 0x8b78acc4
mov dword [ebp - 0x40], 0x549d
cmp dword [ebp - 0x40], 0x54df
jle 0x452fc7
xor edi, edi
xor esi, esi
mov eax, esi
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xac0918
call fcn.00408e98
inc esi
cmp esi, 0x5f51
jl 0x452f95
inc edi
cmp edi, 0x38fd
jl 0x452f93
xor ebx, ebx
push ebx
call dword [0xac3160]
xor edi, edi
inc edi
or esi, 0xffffffff
mov dword [ebp - 0x34], esi
mov dword [ebp - 4], 0x22
cmp dword [ebp - 0x40], 0x5211
jge 0x452fe9
mov edx, 0xaa7334
mov ecx, 0xac0918
call fcn.0040bb10
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x453015
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x40], 0x4309642e
inc dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, 0x6f79b347
setge cl
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp eax, ecx
setg dl
mov eax, dword [ebp - 0x50]
xor ebx, ebx
cmp edx, eax
setge bl
sub ebx, 0xcc0136ef
neg ebx
sbb ebx, ebx
inc ebx
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp eax, ebx
setl cl
xor eax, eax
cmp ecx, 4
setne al
cmp eax, dword [ebp - 0x40]
jg 0x453076
mov eax, dword [ebp - 0x574]
xor ebx, ebx
cmp dword [eax + 4], ebx
je 0x453076
mov edx, edi
jmp 0x453078
xor edx, edx
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x3a0]
mov eax, dword [eax + ecx*4]
imul eax, edx
mov dword [ebp - 0x40], eax
inc dword [ebp - 0x50]
jmp 0x452f5b
lea ecx, [ebp - 0x65c]
call fcn.004092bf
inc dword [ebp - 0x30]
jmp 0x452d80
lea ecx, [ebp - 0x574]
call fcn.004092bf
lea ecx, [ebp - 0x3a0]
call fcn.004092bf
mov dword [ebp - 0x14], 0xe87df2f4
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x38], 0x440874b2
mov dword [ebp - 0x14], 0
jmp 0x4530e6
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x7ec], 0xcff0ea75
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4530d5
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], edi
jg 0x45314a
lea ebx, [ebp - 0x678]
lea eax, [ebp - 0x668]
mov dword [ebp - 0x20], edi
movdqa xmm0, xmmword [0xab0120]
movdqu xmmword [ebp - 0x678], xmm0
push ecx
push eax
push ebx
lea ecx, [ebp - 0xa0c]
call fcn.00409299
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x7e8], eax
dec dword [ebp - 0x40]
lea ecx, [ebp - 0xa0c]
call fcn.004092bf
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
lea eax, [ebp - 0x668]
jle 0x453104
mov dword [ebp - 0x40], 0x5a96
cmp dword [ebp - 0x40], 0x5c04
jle 0x4531ab
xor esi, esi
xor edi, edi
xor ebx, ebx
mov eax, esi
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xf24]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xf24]
call fcn.0040986d
inc edi
cmp edi, 0x224a
jl 0x453160
inc esi
cmp esi, 0x5d2d
jl 0x45315c
xor edi, edi
inc edi
or esi, 0xffffffff
dec dword [ebp - 0x38]
mov dword [ebp - 4], 0x24
cmp dword [ebp - 0x40], 0x576d
jge 0x4531c9
push 0xaa7348
call fcn.004a3217
pop ecx
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x4531f3
push 7
pop edx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], edi
jge 0x453218
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x88c]
mov dword [eax + ecx*4], 0x9dbe4fcd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4531fe
xor eax, eax
mov dword [ebp - 0x4c], 0x49fe387f
mov dword [ebp - 0x3c], 0xf1a9
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x14], 0x774f
cmp dword [ebp - 0x14], 0x78a5
jle 0x4532d2
mov dword [ebp - 0x48], eax
jmp 0x453244
xor eax, eax
mov edx, eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x38], 0x56ba
jmp 0x453254
xor eax, eax
mov esi, eax
mov dword [ebp - 0x40], esi
jmp 0x45325d
xor eax, eax
mov edi, eax
mov ecx, esi
mov esi, edx
sar esi, cl
xor ebx, ebx
mov eax, esi
and eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xd14]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xd14]
call fcn.0040986d
inc edi
cmp edi, 0x463d
jl 0x453267
mov esi, dword [ebp - 0x40]
inc esi
mov dword [ebp - 0x40], esi
cmp esi, 0x13c0
mov edx, dword [ebp - 0x24]
jl 0x45325b
mov ecx, dword [ebp - 0x48]
add edx, ecx
mov dword [ebp - 0x24], edx
dec dword [ebp - 0x38]
jne 0x453252
inc ecx
mov dword [ebp - 0x48], ecx
cmp ecx, 0x485c
jl 0x453242
xor edi, edi
inc edi
mov dword [ebp - 0x34], 0xd8131dda
mov dword [ebp - 4], 0x26
cmp dword [ebp - 0x14], 0x75a5
jge 0x4532f4
push 0xaa73a0
call fcn.004a3217
pop ecx
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
xor eax, eax
jmp 0x453323
mov dword [ebp - 0x34], 0x9942796a
mov dword [ebp - 0x40], 0x6c92
cmp dword [ebp - 0x40], 0x6cd5
jle 0x453367
mov edi, eax
mov esi, eax
mov eax, esi
and eax, edi
cdq
push edx
push eax
mov ecx, 0xac0918
call fcn.00408e98
inc esi
cmp esi, 0x1998
jl 0x45333e
inc edi
cmp edi, 0x6002
push 0
pop eax
jl 0x45333c
xor edi, edi
inc edi
mov dword [ebp - 4], 0x28
cmp dword [ebp - 0x40], 0x6b5e
jge 0x453386
mov edx, 0xaa73f0
mov ecx, 0xac0918
call fcn.0040bb10
mov dword [ebp - 4], ebx
xor eax, eax
jmp 0x4533b2
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jge 0x4533d4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa94], 2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4533bb
xor eax, eax
cmp dword [ebp - 0x4c], eax
je 0x45344a
mov dword [ebp - 0x50], 0xfc88
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x50], eax
jne 0x453400
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x50]
sub ecx, 0xfffffff7
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x4c]
sub ecx, eax
cmp ebx, ecx
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
xor eax, eax
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], al
je 0x4534aa
push eax
push eax
call dword [0xac3128]
jmp 0x4534a8
mov dword [ebp - 0x34], 0xfffffffa
mov dword [ebp - 0x34], 0x857b1a09
mov dword [ebp - 0x34], 0x2d50c857
mov dword [ebp - 0x34], 0xfffffff6
push 2
lea ecx, [ebp - 0x668]
call fcn.004091ed
mov dword [ebp - 0x40], 0x674643a6
xor ebx, ebx
mov dword [ebp - 0x14], ebx
jmp 0x453494
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x668]
mov dword [eax + ecx*4], 0x9ab83eb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x453481
inc dword [ebp - 0x40]
lea ecx, [ebp - 0x668]
call fcn.004092bf
xor eax, eax
mov dword [ebp - 0x48], 0x6827
cmp dword [ebp - 0x48], 0x688b
jle 0x453525
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x684]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x453596
dec dword [ebp - 0x40]
lea ecx, [ebp - 0x684]
call fcn.004092bf
mov dword [ebp - 0x54], 0x4f613c
mov dword [ebp - 0x2c], 0xffff
mov dword [ebp - 0x40], 0xf8ba7967
or esi, 0xffffffff
mov dword [ebp - 0x20], esi
push 2
lea ecx, [ebp - 0x58c]
call fcn.004091ed
mov dword [ebp - 0x14], 0
jmp 0x4535fd
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x58c]
mov dword [eax + ecx*4], 0x731d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4535ea
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x2c]
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0xe1c5
setne al
imul eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, 0x266d210e
setge cl
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp eax, ecx
setne dl
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, edx
setle cl
imul eax, ecx, 0xa9b
test eax, eax
jne 0x45364e
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x2c]
neg ecx
sbb ecx, ecx
inc ecx
neg ecx
xor eax, eax
cmp ecx, 0xfffffff8
setl al
cmp eax, dword [ebp - 0x2c]
jge 0x4537f1
mov dword [ebp - 0x28], 0xfffffff7
mov dword [ebp - 0x40], ebx
xor eax, eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x2c], 0xc
cmp dword [ebp - 0x2c], 0x13
jl 0x4537d5
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], 0x5a2d
cmp dword [ebp - 0x40], 0x5ab7
jle 0x453708
push eax
call dword [0xac3038]
xor esi, esi
xor edi, edi
xor ebx, ebx
mov eax, esi
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x111c]
call fcn.00401a21
pop ecx
pop ecx
mov ecx, eax
call fcn.00408e8d
push eax
call fcn.004a3217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x111c]
call fcn.0040986d
inc edi
cmp edi, 0x3281
jl 0x4536bb
inc esi
cmp esi, 0x7ef0
jl 0x4536b7
xor eax, eax
xor edi, edi
inc edi
or esi, 0xffffffff
mov dword [ebp - 0x50], eax
jmp 0x453726
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
je 0x453720
push eax
push eax
call dword [0xac3070]
xor eax, eax
mov dword [ebp - 0x38], eax
dec dword [ebp - 0x50]
cmp dword [ebp - 0x50], 0xffffffe2
jne 0x45370d
mov dword [ebp - 4], 0x2c
cmp dword [ebp - 0x40], 0x56ff
jge 0x453747
push 0xaa74a8
call fcn.004a3217
pop ecx
mov dword [ebp - 4], esi
jmp 0x45376f
mov dword [ebp - 0x50], 0x6d7d
cmp dword [ebp - 0x50], 0xfff9
jb 0x4537b7
mov edx, dword [ebp - 0x28]
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x40], 0x9150040b
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x40]
add eax, edx
add ecx, eax
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x2c], 0xf3f0
jle 0x4537ac
xor eax, eax
cmp dword [ebp - 0x40], eax
je 0x4537ae
mov eax, edi
cmp eax, dword [ebp - 0x20]
jle 0x4537b7
mov edx, edi
jmp 0x4537b9
xor edx, edx
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setl cl
mov eax, dword [ebp - 0x28]
sub eax, ecx
mov dword [ebp - 0x40], eax
inc dword [ebp - 0x2c]
xor eax, eax
jmp 0x45368e
mov dword [ebp - 0x28], eax
jmp 0x4537e9
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x58c]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jl 0x4537da
jmp 0x453805
xor eax, eax
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], al
je 0x453805
push eax
push eax
push eax
push eax
call dword [0xac33b4]
lea ecx, [ebp - 0x58c]
call fcn.004092bf
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x34], 0xfffffffe
mov dword [ebp - 0x34], 0x9a3df603
mov dword [ebp - 0x34], 4
push 3
lea ecx, [ebp - 0x650]
call fcn.004091ed
mov dword [ebp - 0x24], 0xfbb6
mov dword [ebp - 0x14], 0
jmp 0x453854
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x650]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x453845
mov dword [ebp - 0x4c], 0x18f0
cmp dword [ebp - 0x4c], 0x190f
jle 0x4538c1
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x48], 0x2610
mov edi, eax
mov dword [ebp - 0x40], 0x4056
xor esi, esi
mov eax, edi
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xac0918
call fcn.00408e98
inc esi
cmp esi, 0x1744
jl 0x453883
dec edi
dec dword [ebp - 0x40]
jne 0x453881
mov eax, dword [ebp - 0x38]
add eax, ebx
mov dword [ebp - 0x38], eax
dec dword [ebp - 0x48]
jne 0x453878
inc ebx
cmp ebx, 0x7c7e
jl 0x45386c
xor edi, edi
inc edi
or esi, 0xffffffff
dec dword [ebp - 0x24]
mov dword [ebp - 4], 0x2e
cmp dword [ebp - 0x4c], 0x17c2
jge 0x4538e3
mov edx, 0xaa74c4
mov ecx, 0xac0918
call fcn.0040bb10
mov dword [ebp - 4], esi
jmp 0x45390b
lea ecx, [ebp - 0x650]
call fcn.004092bf
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x14], 0xffffffea
jmp 0x4539b1
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 4
jge 0x453945
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x694], esi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x453930
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 2
jge 0x453967
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xd8], 0x4768c0aa
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x45394e
xor eax, eax
mov dword [ebp - 0xd8], 3
cmp dword [ebp - 0xd8], eax
jl 0x4539ae
xor ebx, ebx
mov eax, dword [ebp - 0xd8]
cmp dword [ebp + eax*4 - 0x694], ebx
jne 0x4539ac
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp + eax*4 - 0x694]
mov eax, dword [ebp - 0xd8]
mov dword [ebp + eax*4 - 0x694], ecx
dec dword [ebp - 0xd8]
jns 0x45397b
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffef
jge 0x453927
mov dword [ebp - 0x20], 0x4039b642
mov dword [ebp - 0x24], 0x43d837bc
mov dword [ebp - 0x48], 0x871d976f
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x34], 0x9c4185a1
push 4
lea ecx, [ebp - 0x5bc]
call fcn.004091ed
movdqa xmm0, xmmword [0xab0100]
movdqu xmmword [ebp - 0x948], xmm0
lea ecx, [ebp - 0x948]
lea eax, [ebp - 0x938]
push ecx
push eax
push ecx
lea ecx, [ebp - 0xa24]
call fcn.00409299
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x34], edi
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x453a3f
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xe0], 9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x453a27
xor eax, eax
mov dword [ebp - 0x40], 0x3693
cmp dword [ebp - 0x40], 0x37c2
jle 0x453a8e
mov ebx, eax
mov edi, eax
mov esi, eax
mov eax, edi
mov ecx, esi
shl eax, cl
xor eax, ebx
cdq
push edx
push eax
mov ecx, 0xac0918
call fcn.00408e98
inc esi
cmp esi, 0x4098
jl 0x453a55
inc edi
cmp edi, 0x56fe
push 0
pop eax
jl 0x453a53
inc ebx
cmp ebx, 0x6675
jl 0x453a51
xor edi, edi
inc edi
or esi, 0xffffffff
mov dword [ebp - 0x18], 0
jmp 0x453aaa
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x5bc]
mov dword [eax + ecx*4], 0x176
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x453a97
mov dword [ebp - 4], 0x30
cmp dword [ebp - 0x40], 0x3572
jge 0x453acf
mov edx, 0xaa74e4
mov ecx, 0xac0918
call fcn.0040bb10
mov dword [ebp - 4], esi
jmp 0x453af7
dec dword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x24], eax
jl 0x453bde
mov dword [ebp - 0x50], 0xfffffffd
mov dword [ebp - 0x3c], 0x2c22b60d
movdqa xmm0, xmmword [0xab00a0]
movdqu xmmword [ebp - 0x988], xmm0
lea ecx, [ebp - 0x988]
lea eax, [ebp - 0x978]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x5a4]
call fcn.00409299
mov eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x50]
je 0x453b71
xor ebx, ebx
cmp dword [ebp - 0x50], ebx
jne 0x453b61
mov eax, dword [ebp - 0x5bc]
cmp dword [eax + 0xc], ebx
jne 0x453b61
xor eax, eax
cmp dword [ebp - 0x48], eax
mov ecx, eax
je 0x453b63
mov ecx, edi
mov eax, dword [ebp - 0xe0]
sub ecx, eax
je 0x453b71
mov edx, edi
jmp 0x453b75
xor edx, edx
xor ebx, ebx
mov eax, dword [ebp - 0x48]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x5a4]
cmp dword [eax], ebx
je 0x453b9c
cmp dword [ebp - 0x50], 0
je 0x453b9c
mov eax, edi
jmp 0x453b9e
xor eax, eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x5a4]
mov eax, dword [eax]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, edi
setl cl
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x5a4]
call fcn.004092bf
jmp 0x453c52
mov dword [ebp - 0x40], 0x732e7ce9
mov dword [ebp - 0x20], 3
mov dword [ebp - 0x50], 0
jmp 0x453c4c
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x34], 0
push 2
lea ecx, [ebp - 0x3b8]
call fcn.004091ed
mov dword [ebp - 0x14], 0
jmp 0x453c28
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x3b8]
mov dword [eax + ecx*4], 3
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x453c15
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3b8]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x3b8]
cmp dword [ebp - 0x40], 0
call fcn.004092bf
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 0xa
jg 0x453bf5
lea ecx, [ebp - 0xa24]
call fcn.004092bf
lea ecx, [ebp - 0x5bc]
call fcn.004092bf
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x34], 0xfffffffe
mov dword [ebp - 0x18], 0xfffffffc
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x40], 0xd5d70512
mov dword [ebp - 0x34], 2
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], 0xbb2f1448
mov dword [ebp - 0x34], 0xf906d8bc
mov dword [ebp - 0x28], 0xfffffffc
push 4
lea ecx, [ebp - 0x3d0]
call fcn.004091ed
mov dword [ebp - 0x34], 0x738f
mov dword [ebp - 0x24], 8
mov dword [ebp - 0x48], 0xfffffffc
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x50], 0x273426ae
mov dword [ebp - 0x18], 0
jmp 0x453ce8
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xa3c], 8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x453cd7
mov dword [ebp - 0x18], 0
jmp 0x453d0a
cmp dword [ebp - 0x18], 4
jl 0x453cf7