Function at 0x461b2a
Capabilities:
Encrypt data using speck

Disassembly:
mov eax, 0x4b47a1
call fcn.004b3bc8
sub esp, 0x45c
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x24], 0xfe0a8eac
mov dword [ebp - 0x38], 0x6979f9f4
mov dword [ebp - 0x3c], 0x36cc
xor ebx, ebx
cmp dword [ebp - 0x3c], 0x3a94
jle 0x461bc8
push ebx
call dword [0xaa125c]
mov edi, ebx
xor esi, esi
inc esi
mov ecx, ebx
mov dword [ebp - 0x40], ebx
mov eax, edi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x37c]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x461b93
mov eax, dword [eax]
push eax
call fcn.0049e427
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x37c]
call fcn.0040a7b5
mov ecx, dword [ebp - 0x40]
inc ecx
mov dword [ebp - 0x40], ecx
cmp ecx, 0x611d
jl 0x461b77
inc edi
cmp edi, 0x3fd9
jl 0x461b72
push ebx
call dword [0xaa12dc]
jmp 0x461bcb
xor esi, esi
inc esi
mov dword [ebp - 0x1c], 3
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x3c], 0x3480
jge 0x461be9
push 0xa88088
call fcn.0049e427
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x461c12
push 3
lea ecx, [ebp - 0x1cc]
call fcn.0040a207
mov dword [ebp - 0x20], ebx
jmp 0x461c35
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x94], 0xdd688769
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x461c24
mov dword [ebp - 0x20], ebx
jmp 0x461c53
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1cc]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x461c40
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 0xfffffffd
jg 0x46200d
mov dword [ebp - 0x3c], 0xa40
cmp dword [ebp - 0x3c], 0xd95
jle 0x461ce5
mov eax, ebx
mov dword [ebp - 0x2c], ebx
mov edi, ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x30], ebx
mov ecx, edi
sar eax, cl
mov dword [ebp - 0x28], eax
mov edi, ebx
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x304]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x461ca8
mov eax, dword [eax]
push eax
call fcn.0049e427
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x304]
call fcn.0040a7b5
inc edi
cmp edi, 0x6725
mov eax, dword [ebp - 0x28]
jl 0x461c8c
mov edi, dword [ebp - 0x40]
inc edi
mov dword [ebp - 0x40], edi
cmp edi, 0x4235
mov eax, dword [ebp - 0x2c]
jl 0x461c80
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x3723
jl 0x461c7b
push esi
lea ecx, [ebp - 0x1b4]
call fcn.0040a207
mov dword [ebp - 4], 2
cmp dword [ebp - 0x3c], 0x830
jge 0x461d0c
push 0xa8810c
call fcn.0049e427
pop ecx
or edi, 0xffffffff
mov dword [ebp - 4], edi
jmp 0x461d37
mov dword [ebp - 0x20], ebx
jmp 0x461d4d
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xa0], 0x8ef6b8f
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x461d3c
mov dword [ebp - 0x20], ebx
jmp 0x461d6b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1b4]
mov dword [eax + ecx*4], 0xef23e469
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x461d58
mov dword [ebp - 0x9c], ebx
cmp dword [ebp - 0x9c], 2
jg 0x461ffa
mov dword [ebp - 0x18], 0xf30836b1
mov dword [ebp - 0x2c], 0xfffffffa
mov dword [ebp - 0x34], 0xfffffffd
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 2
jg 0x461fef
mov dword [ebp - 0x28], 0xa61eefb6
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], 2
jg 0x461fe7
mov dword [ebp - 0x30], 0x3a14
cmp dword [ebp - 0x30], 0x3d55
jle 0x461e25
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x2c], ebx
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x40], ecx
cdq
idiv edi
mov dword [ebp - 0x3c], edx
mov eax, ecx
or eax, esi
or eax, edx
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
mov ecx, dword [ebp - 0x40]
inc ecx
mov dword [ebp - 0x40], ecx
cmp ecx, 0x1162
mov edx, dword [ebp - 0x3c]
jl 0x461ddd
inc edi
cmp edi, 0x11a5
mov eax, dword [ebp - 0x2c]
jl 0x461dd2
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x420a
jl 0x461dd0
inc esi
cmp esi, 0x5d56
jl 0x461dcb
xor esi, esi
inc esi
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x94], ebx
je 0x461e49
mov dword [ebp - 0x40], 9
cmp dword [ebp - 0x18], ebx
jne 0x461fe7
dec dword [ebp - 0x40]
jmp 0x461f95
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x461e7a
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x8dc
push 0x863
push 0x1651
push 0x23ce
push 0x21ab
call dword [0xaa1078]
mov dword [ebp - 0x20], 0x338c
cmp dword [ebp - 0x20], 0x3738
jle 0x461f02
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [0xaa100c]
mov dword [ebp - 0x44], ebx
mov edx, ebx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x3c], 0x47c
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x40], ebx
lea ecx, [eax + edi]
mov eax, edx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
cmp eax, 0x4dd9
mov edx, dword [ebp - 0x2c]
jl 0x461eac
inc edi
cmp edi, 0x7de6
jl 0x461ea7
mov eax, dword [ebp - 0x44]
add edx, eax
mov dword [ebp - 0x2c], edx
dec dword [ebp - 0x3c]
jne 0x461ea5
inc eax
mov dword [ebp - 0x44], eax
cmp eax, 0x1f3c
jl 0x461e99
push 0x1daf
push 0x8df
call dword [0xaa10b8]
mov dword [ebp - 0x2c], 2
cmp dword [ebp - 0x2c], ebx
jl 0x461f4b
mov dword [ebp - 0x40], 9
mov eax, dword [ebp - 0x90]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x94], ebx
je 0x461f34
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x94]
mov eax, dword [ebp - 0x1b4]
mov dword [eax], 0x9c9d9403
mov eax, dword [ebp - 0x9c]
dec dword [ebp - 0x2c]
jns 0x461f0e
mov dword [ebp - 4], 4
cmp dword [ebp - 0x20], 0x32d4
jge 0x461f6a
mov edx, 0xa881a4
mov ecx, 0xa9e1d8
call fcn.0040c865
or edi, 0xffffffff
mov dword [ebp - 4], edi
jmp 0x461f98
or edi, 0xffffffff
mov dword [ebp - 4], 6
cmp dword [ebp - 0x30], 0x3890
jge 0x461fb7
mov edx, 0xa88158
mov ecx, 0xa9e1d8
call fcn.0040c865
mov dword [ebp - 4], edi
jmp 0x461fdf
inc dword [ebp - 0x28]
jmp 0x461daf
inc dword [ebp - 0x18]
jmp 0x461d9b
inc dword [ebp - 0x9c]
jmp 0x461d76
lea ecx, [ebp - 0x1b4]
call fcn.0040a2d9
dec dword [ebp - 0x24]
jmp 0x461c5c
cmp dword [ebp - 0x38], ebx
jne 0x46201e
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x90]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x94]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x94]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setl dl
xor ecx, ecx
cmp edx, 0xeb13
setle cl
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x8c]
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x1cc]
call fcn.0040a2d9
mov dword [ebp - 0x18], 0x75dcec3d
mov dword [ebp - 0x30], 0x3dcdf5ef
mov dword [ebp - 0x1c], 0x5954e3f1
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], ebx
jmp 0x4620d1
mov dword [ebp - 0x38], 0x27ca
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp eax, esi
setg cl
imul ecx, dword [ebp - 0x38]
mov dword [ebp - 0x1c], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x1b
jg 0x462099
mov dword [ebp - 0x18], ebx
mov eax, dword [0xa9f454]
test al, 1
jne 0x462158
or eax, esi
mov dword [0xa9f454], eax
mov dword [0xa9f480], ebx
mov dword [0xa9f484], ebx
push ebx
push ebx
call fcn.0040c764
mov dword [0xa9f480], eax
mov dword [0xa9f488], ebx
mov dword [0xa9f490], ebx
mov dword [0xa9f49c], 0x3f800000
mov dword [ebp - 0x5c], eax
mov dword [0xa9f48c], ebx
lea eax, [ebp - 0x5c]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x1d0]
push eax
mov ecx, 0xa9f488
call fcn.0040c509
mov dword [0xa9f494], 7
mov dword [0xa9f498], 8
push 0x4b4ea1
call fcn.0049e3fd
pop ecx
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x18], 0xd59e57ad
mov dword [ebp - 0x34], 0xfffffffe
mov dword [ebp - 0x34], 0x1b66bafc
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x34], 0xde9bf9f3
mov dword [ebp - 0x34], 0x815898f0
mov dword [ebp - 0x1c], 0xfffd
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x18], 3
jmp 0x4621c5
mov dword [ebp - 0x38], ebx
jmp 0x4621a9
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax*4 - 0x2d4], ebx
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 2
jl 0x46219c
inc dword [ebp - 0x1c]
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x4621c2
push ebx
call dword [0xaa1340]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 5
jl 0x462197
imul eax, dword [ebp - 0x58], 0x2710
add eax, dword [ebp - 0x48]
mov dword [ebp - 0x98], eax
movdqa xmm0, xmmword [0xa8e0d0]
movdqu xmmword [ebp - 0x22c], xmm0
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x144], ebx
mov dword [ebp - 0x140], ebx
push dword [ebp + 8]
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x22c]
push eax
push ebx
lea ecx, [ebp - 0x148]
call fcn.0040d25b
mov dword [ebp - 0x2c], 0x5c8094a1
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], 0x923607a9
mov dword [ebp - 0x1c], 0x5b12
cmp dword [ebp - 0x1c], 0x5bb9
jle 0x462278
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x30], ebx
mov eax, edi
mov ecx, ebx
sar eax, cl
and eax, esi
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
inc ebx
cmp ebx, 0x484b
jl 0x462242
inc edi
cmp edi, 0x3eeb
push 0
pop ebx
jl 0x46223f
inc esi
cmp esi, 0x67e1
jl 0x46223d
xor esi, esi
inc esi
push 3
lea ecx, [ebp - 0x1f8]
call fcn.0040a207
mov dword [ebp - 4], 8
cmp dword [ebp - 0x1c], 0x5a08
jge 0x4622a4
mov edx, 0xa88208
mov ecx, 0xa9e1d8
call fcn.0040c865
or edi, 0xffffffff
mov dword [ebp - 4], edi
jmp 0x4622d2
mov dword [ebp - 0x18], ebx
jmp 0x4622ea
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1f8]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4622d7
mov dword [ebp - 0x2c], 3
cmp dword [ebp - 0x2c], ebx
jl 0x46242e
mov dword [ebp - 0x3c], 0x2cbb
cmp dword [ebp - 0x3c], 0x306f
jle 0x46235a
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x30], 0x180
mov esi, ebx
mov ebx, dword [ebp - 0x1c]
mov eax, ebx
or eax, esi
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
inc esi
cmp esi, 0x7272
jl 0x462322
mov eax, dword [ebp - 0x40]
add ebx, eax
mov dword [ebp - 0x1c], ebx
dec dword [ebp - 0x30]
push 0
pop ebx
jne 0x46231d
inc eax
mov dword [ebp - 0x40], eax
cmp eax, 0x1016
jl 0x462313
xor esi, esi
inc esi
mov dword [ebp - 0x74], 0xd94fe5f3
mov dword [ebp - 0x70], 0xd94fe5f3
mov dword [ebp - 0x6c], 0xd94fe5f3
mov dword [ebp - 0x68], 0xd94fe5f3
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x3c], 0x29ae
jge 0x462395
mov edx, 0xa88290
mov ecx, 0xa9e1d8
call fcn.0040c865
mov dword [ebp - 4], edi
jmp 0x4623c0
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], 0xef054a20
mov dword [ebp - 0x34], 0xcb3a3fc4
mov dword [ebp - 0x34], 0xcef989b1
mov dword [ebp - 0x34], 9
mov dword [ebp - 0x34], 0xd45b0e82
push 3
lea ecx, [ebp - 0x210]
call fcn.0040a207
mov dword [ebp - 0x1c], 0xfffd
mov dword [ebp - 0x18], ebx
jmp 0x462412
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x210]
mov dword [eax + ecx*4], 0x1b0ae28d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4623ff
inc dword [ebp - 0x1c]
lea ecx, [ebp - 0x210]
call fcn.0040a2d9
dec dword [ebp - 0x2c]
jmp 0x4622f7
lea ecx, [ebp - 0x1f8]
call fcn.0040a2d9
lea ecx, [ebp - 0x148]
call fcn.0040a2d9
mov dword [ebp - 0x3c], 0x5880
cmp dword [ebp - 0x3c], 0x5c28
jle 0x4624b2
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x30], 0x54e1
mov esi, ebx
mov ebx, dword [ebp - 0x1c]
mov eax, ebx
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
inc esi
cmp esi, 0x3d6
jl 0x462466
mov eax, dword [ebp - 0x40]
add ebx, eax
mov dword [ebp - 0x1c], ebx
dec dword [ebp - 0x30]
push 0
pop ebx
jne 0x462461
inc eax
mov dword [ebp - 0x40], eax
cmp eax, 0x1447
jl 0x462457
push ebx
push 0xe60
push 0x15bf
push ebx
call dword [0xaa1080]
xor esi, esi
inc esi
lea eax, [ebp - 0x98]
push eax
call fcn.00464ac8
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x3c], 0x5542
jge 0x4624e2
mov edx, 0xa88328
mov ecx, 0xa9e1d8
call fcn.0040c865
mov dword [ebp - 4], edi
jmp 0x46250d
mov dword [ebp - 0x24], 0xfe0a8eac
mov dword [ebp - 0x28], 0x6979f9f4
mov dword [ebp - 0x30], 0x6b3
cmp dword [ebp - 0x30], 0x799
jle 0x462565
push ebx
push ebx
push ebx
call dword [0xaa1358]
mov esi, ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x1c], 0x2550
mov eax, ebx
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
add ebx, esi
dec dword [ebp - 0x1c]
jne 0x462540
inc esi
cmp esi, 0x4863
push 0
pop ebx
jl 0x462536
xor esi, esi
inc esi
mov dword [ebp - 0x3c], 3
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x30], 0x5a8
jge 0x46258b
mov edx, 0xa88384
mov ecx, 0xa9e1d8
call fcn.0040c865
mov dword [ebp - 4], edi
jmp 0x4625b6
push 3
lea ecx, [ebp - 0x1dc]
call fcn.0040a207
mov dword [ebp - 0x20], ebx
push 3
pop edx
jmp 0x4625dc
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x88], 0xdd688769
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x4625cb
mov dword [ebp - 0x20], ebx
jmp 0x4625f9
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1dc]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x4625e6
mov dword [ebp - 0x24], ebx
jmp 0x462749
push esi
lea ecx, [ebp - 0x19c]
call fcn.0040a207
mov dword [ebp - 0x20], ebx
jmp 0x462625
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x7c], 0x8ef6b8f
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x462617
mov dword [ebp - 0x20], ebx
jmp 0x462643
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x19c]
mov dword [eax + ecx*4], 0xef23e469
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x462630
mov dword [ebp - 0x78], ebx
jmp 0x462731
mov dword [ebp - 0x20], 0xf30836b1
mov dword [ebp - 0x2c], 0xfffffffa
mov dword [ebp - 0x34], 0xfffffffd
mov dword [ebp - 0x20], ebx
jmp 0x462724
mov dword [ebp - 0x18], 0xa61eefb6
mov dword [ebp - 0x18], ebx
jmp 0x462717
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x88], ebx
je 0x46269d
mov dword [ebp - 0x1c], 9
cmp dword [ebp - 0x20], ebx
jne 0x462721
dec dword [ebp - 0x1c]
jmp 0x462714
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x4626ce
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x8dc
push 0x863
push 0x1651
push 0x23ce
push 0x21ab
call dword [0xaa1078]
mov dword [ebp - 0x2c], 2
cmp dword [ebp - 0x2c], ebx
jl 0x462714
mov dword [ebp - 0x1c], 9
mov eax, dword [ebp - 0x84]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x88], ebx
je 0x462700
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x88]
mov eax, dword [ebp - 0x19c]
mov dword [eax], 0x9c9d9403
mov eax, dword [ebp - 0x78]
dec dword [ebp - 0x2c]
jns 0x4626da
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jle 0x46267c
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jle 0x46266d
inc dword [ebp - 0x78]
cmp dword [ebp - 0x78], 2
jle 0x462650
lea ecx, [ebp - 0x19c]
call fcn.0040a2d9
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xfffffffd
jle 0x462606
cmp dword [ebp - 0x28], ebx
jne 0x462764
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x84]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x88]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x88]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x3c]
xor edx, edx
cmp ecx, eax
setl dl
xor ecx, ecx
cmp edx, 0xeb13
setle cl
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x80]
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x1dc]
call fcn.0040a2d9
cmp dword [ebp - 0x40], 0
je 0x4629e9
mov dword [ebp - 0x2c], 0x9ad59e57
mov dword [ebp - 0x48], 0xfffffffe
mov dword [ebp - 0x28], 0x98f01ba0
or ecx, 0xffffffff
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x18], ebx
push 3
pop edx
jmp 0x4627f9
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x34c], esi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x4627ec
mov dword [ebp - 0x2c], 2
cmp dword [ebp - 0x2c], ebx
jl 0x462926
mov dword [ebp - 0x34], 0x220985a9
mov dword [ebp - 0x34], 0xbafcb143
mov dword [ebp - 0x34], 7
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x3c], 0x73b9
cmp dword [ebp - 0x3c], 0x75e3
jle 0x462889
mov esi, ebx
mov dword [ebp - 0x30], ebx
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov eax, esi
cdq
idiv edi
mov esi, edx
mov edi, 0x35a6
mov eax, esi
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
dec esi
dec edi
jne 0x462855
mov edi, dword [ebp - 0x1c]
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x70e6
mov esi, dword [ebp - 0x30]
jl 0x462849
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x1d95
jl 0x462844
xor esi, esi
inc esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x3c], 0x7191
jge 0x4628ab
mov edx, 0xa883d0
mov ecx, 0xa9e1d8
call fcn.0040c865
or ecx, 0xffffffff
mov dword [ebp - 4], ecx
jmp 0x4628d8
push 3
pop edx
mov dword [ebp - 0x24], ebx
jmp 0x4628ed
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x458], ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x4628e0
mov dword [ebp - 0x24], ebx
jmp 0x462909
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x28c], 0xfffffffc
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x4628f8
inc dword [ebp - 0x288]
mov dword [ebp - 0x1c], ebx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x48], eax
dec dword [ebp - 0x2c]
jmp 0x462805
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x34], ecx
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x462945
push ebx
call dword [0xaa1300]
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x4649e4
mov dword [ebp - 0x30], 0x3cac
cmp dword [ebp - 0x30], 0x4030
jle 0x4629a0
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x5c], esi
mov ebx, 0x4eb9
mov eax, edi
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
dec esi
dec ebx
jne 0x462971
mov esi, dword [ebp - 0x1c]
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x28cb
jl 0x462969
inc edi
cmp edi, 0x52d8
jl 0x462964
push ebx
call dword [0xaa12b4]
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x30], 0x3a3a
jge 0x4629c6
mov edx, 0xa88418
mov ecx, 0xa9e1d8
call fcn.0040c865
or dword [ebp - 4], 0xffffffff
jmp 0x4649e4
mov dword [ebp - 0x34], 0x64a6847d
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x462a21
push 0x1fa3
push 0x1304
push 0xfe3
push 0xfa0
push 0xfc3
push ebx
push ebx
push ebx
push ebx
push 0xe94
call dword [0xaa149c]
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x462a45
push ebx
push 0x21c6
push 0x1c4
push 0x1934
push 0x136c
call dword [0xaa113c]
mov eax, dword [0xa9f454]
test al, 2
jne 0x462aca
or eax, 2
mov dword [0xa9f454], eax
mov dword [0xa9f460], ebx
mov dword [0xa9f464], ebx
push ebx
push ebx
call fcn.0040c764
mov dword [0xa9f460], eax
mov dword [0xa9f468], ebx
mov dword [0xa9f470], ebx
mov dword [0xa9f47c], 0x3f800000
mov dword [ebp - 0xe0], eax
mov dword [0xa9f46c], ebx
lea eax, [ebp - 0xe0]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x1e0]
push eax
mov ecx, 0xa9f468
call fcn.0040c509
mov dword [0xa9f474], 7
mov dword [0xa9f478], 8
push 0x4b4e9c
call fcn.0049e3fd
pop ecx
xorps xmm0, xmm0
movdqu xmmword [ebp - 0xc4], xmm0
push esi
lea ecx, [ebp - 0xac]
call fcn.0040a207
mov dword [ebp - 0x20], 0x3606de71
mov dword [ebp - 0x1c], 0x452e2cc7
push esi
lea ecx, [ebp - 0x184]
call fcn.0040a207
mov dword [ebp - 0x24], ebx
jmp 0x462b13
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], 0x5568
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x462b00
mov dword [ebp - 0x24], ebx
jmp 0x462b30
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x184]
mov dword [eax + ecx*4], 0xfff8
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x462b1d
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x462bc2
mov dword [ebp - 0x1c], 2
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp - 0xac]
cmp dword [eax], ebx
setne cl
mov dword [ebp - 0x1c], ecx
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xac]
mov eax, dword [ecx + eax*4]
imul eax, dword [ebp - 0x1c]
add eax, 0x698
cmp eax, dword [ecx + edx*4]
push 0
pop edx
setg dl
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
mov eax, dword [ebp - 0xac]
cmp dword [eax + esi*4], ecx
setge dl
xor eax, eax
cmp edx, 5
setge al
mov dword [ebp - 0x1c], eax
dec dword [ebp - 0x20]
push 1
pop esi
jns 0x462b41
cmp dword [ebp - 0x20], ebx
je 0x462c96
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x462d82
mov dword [ebp - 0x30], 0x5ff5
cmp dword [ebp - 0x30], 0x60c6
jle 0x462c3f
mov ecx, ebx
mov dword [ebp - 0x2c], ebx
mov eax, ebx
mov dword [ebp - 0x1c], ebx
mov esi, ebx
xor eax, ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x3c], ebx
mov eax, esi
cdq
idiv ebx
or edx, dword [ebp - 0x28]
mov eax, edx
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
inc ebx
cmp ebx, 0x5b84
jl 0x462bf3
inc esi
cmp esi, 0xc53
push 0
pop ebx
jl 0x462bf0
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x7989
mov ecx, dword [ebp - 0x2c]
jl 0x462be9
inc ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, 0x2bfa
jl 0x462be4
xor esi, esi
inc esi
push 0x4a
call dword [0xaa14d4]
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x30], 0x5d33
jge 0x462c66
mov edx, 0xa8844c
mov ecx, 0xa9e1d8
call fcn.0040c865
mov dword [ebp - 4], edi
jmp 0x462d82
mov dword [ebp - 0x1c], 0x28d029b4
mov dword [ebp - 0x1c], 0x475678d5
mov dword [ebp - 0x1c], 0x33db9622
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x18], ebx
jmp 0x462cc1
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x64], 0xde7504ed
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x462cb3
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], 0x3046aa1d
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xac]
imul ecx, dword [eax]
imul ecx, ecx, 0x8b3d
mov eax, dword [ebp - 0x64]
sub eax, ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x64]
imul ecx, eax
mov eax, dword [ebp - 0x60]
add eax, ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, 0xa256013
setne cl
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x64]
xor edx, edx
cmp eax, ecx
setle dl
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0xac]
mov edx, dword [eax]
mov eax, dword [ebp - 0x64]
xor ecx, ecx
cmp dword [ebp - 0x1c], eax
setge cl
sub ecx, edx
imul ecx, edx
cmp ecx, esi
jne 0x462d45
cmp dword [ebp - 0x30], ebx
mov eax, ebx
je 0x462d47
mov eax, esi
cmp eax, dword [ebp - 0x64]
jg 0x462d72
mov dword [ebp - 0x34], 8
mov ecx, dword [ebp - 0x60]
xor edx, edx
mov eax, dword [ebp - 0x184]
cmp dword [eax], ecx
setne dl
cmp edx, 0xb3eef59d
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
jmp 0x462d82
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x462d82
push esi
call dword [0xaa1470]
lea ecx, [ebp - 0x184]
call fcn.0040a2d9
lea ecx, [ebp - 0xac]
call fcn.0040a2d9
lea eax, [ebp - 0x58]
push eax
call fcn.00464b2a
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
cmp byte [ebp + 0xc], 0
jne 0x462db4
test eax, eax
jne 0x463413
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x462dcd
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x2dc], esi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x462dc0
mov dword [ebp - 0x18], ebx
jmp 0x462dee
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x462deb
push ebx
push ebx
push ebx
push ebx
call dword [0xaa12c0]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x462dd8
lea eax, [ebp - 0x468]
push eax
mov dl, byte [ebp + 0xc]
mov ecx, dword [ebp - 0x58]
call fcn.0044c790
pop ecx
mov esi, eax
lea edi, [ebp - 0xc4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movdqa xmm0, xmmword [0xa8e110]
movdqu xmmword [ebp - 0x26c], xmm0
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x110], ebx
mov dword [ebp - 0x10c], ebx
push dword [ebp + 8]
lea eax, [ebp - 0x25c]
push eax
lea eax, [ebp - 0x26c]
push eax
push ebx
lea ecx, [ebp - 0x114]
call fcn.0040d25b
xor esi, esi
inc esi
mov dword [ebp - 0x28], esi
push 3
lea ecx, [ebp - 0xd0]
call fcn.0040a207
mov dword [ebp - 0x1c], 0xbb35b689
mov dword [ebp - 0x30], 3
mov dword [ebp - 0x1c], 0xca3eaa3e
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x34], 0x5749
mov dword [ebp - 0x1c], 0x3c6d
cmp dword [ebp - 0x1c], 0x3d43
jle 0x462ebf
mov edi, ebx
mov esi, ebx
mov eax, edi
mov ecx, esi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
inc esi
cmp esi, 0xf8b
jl 0x462e97
inc edi
cmp edi, 0x22c7
jl 0x462e95
xor esi, esi
inc esi
mov dword [ebp - 0x18], ebx
jmp 0x462ed7
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xd0]
mov dword [eax + ecx*4], 0x94bb489f
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x462ec4
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x1c], 0x38c7
jge 0x462efc
mov edx, 0xa88474
mov ecx, 0xa9e1d8
call fcn.0040c865
or edi, 0xffffffff
mov dword [ebp - 4], edi
jmp 0x462f2a
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x114]
cmp dword [eax + 0xc], ebx
je 0x462f3b
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0xd0]
cmp dword [eax], 0x71cb
jne 0x462f55
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
je 0x462f66
cmp dword [ebp - 0x30], ebx
mov eax, esi
jne 0x462f68
mov eax, ebx
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, dword [edx + 8]
setge cl
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0xd0]
call fcn.0040a2d9
lea ecx, [ebp - 0x114]
call fcn.0040a2d9
cmp byte [ebp + 0xc], 0
je 0x463413
cmp dword [ebp - 0xbc], 0
je 0x463413
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x34], 0xe9c96c79
mov dword [ebp - 0x24], ebx
jmp 0x462fc9
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x50], 0x17571177
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x462fbb
mov dword [ebp - 0x24], ebx
jmp 0x462fe4
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x2c4], 0x5196ee4e
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x462fd3
mov dword [ebp - 0x50], 0xfffffff7
cmp dword [ebp - 0x50], 0xfffffff9
jle 0x4631c0
mov dword [ebp - 0x18], 0xfffffff9
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x34], 3
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], 0xeb44952
movdqa xmm0, xmmword [0xa8e190]
movdqu xmmword [ebp - 0x2ac], xmm0
mov dword [ebp - 0x160], ebx
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x158], ebx
push dword [ebp + 8]
lea eax, [ebp - 0x29c]
push eax
lea eax, [ebp - 0x2ac]
push eax
push ebx
lea ecx, [ebp - 0x160]
call fcn.0040d25b
or eax, 0xffffffff
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], 0x82b0002
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 0xf
jg 0x4631aa
mov dword [ebp - 0x34], 0x8fbc
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x34], 0x4d63a88e
mov dword [ebp - 0x34], 0x57e71f09
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], 6
mov dword [ebp - 0x34], 2
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], 0x89f7a9d2
mov dword [ebp - 0x34], 0xbb35b689
mov dword [ebp - 0x34], 3
mov dword [ebp - 0x34], 0xfffffffb
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x44], ebx
jne 0x4631aa
mov dword [ebp - 0x3c], 0x5ba
cmp dword [ebp - 0x3c], 0x774
jle 0x463157
mov edx, ebx
mov dword [ebp - 0x28], ebx
mov eax, ebx
mov dword [ebp - 0x38], ebx
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x1c], ecx
add eax, edi
add edx, eax
mov dword [ebp - 0x24], edx
mov eax, ecx
and eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x3ac]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x46310b
mov eax, dword [eax]
push eax
call fcn.0049e427
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x3ac]
call fcn.0040a7b5
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x1d2a
mov edx, dword [ebp - 0x24]
jl 0x4630ef
inc edi
cmp edi, 0x713c
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x28]
jl 0x4630e3
inc eax
mov dword [ebp - 0x38], eax
cmp eax, 0x351d
jl 0x4630e1
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 0x6fe3
jl 0x4630dc
dec dword [ebp - 0x30]
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x3c], 0x53f
jge 0x463175
push 0xa884a8
call fcn.0049e427
pop ecx
or eax, 0xffffffff
mov dword [ebp - 4], eax
jmp 0x4631a2
inc dword [ebp - 0x18]
jmp 0x463065
lea ecx, [ebp - 0x160]
call fcn.0040a2d9
inc dword [ebp - 0x50]
or edi, 0xffffffff
jmp 0x462ff1
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x3c], 0xd2e
cmp dword [ebp - 0x3c], 0xf9e
jle 0x463229
mov esi, ebx
mov dword [ebp - 0x30], ebx
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov eax, esi
cdq
idiv edi
mov esi, edx
mov edi, 0x38d0
mov eax, esi
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
inc esi
dec edi
jne 0x4631ef
mov edi, dword [ebp - 0x1c]
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x41f
mov esi, dword [ebp - 0x30]
jl 0x4631e3
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x61a0
jl 0x4631de
call dword [0xaa12f8]
xor esi, esi
inc esi
mov dword [ebp - 4], 0x1a
cmp dword [ebp - 0x3c], 0xa8e
jge 0x463248
mov edx, 0xa88508
mov ecx, 0xa9e1d8
call fcn.0040c865
or ecx, 0xffffffff
mov dword [ebp - 4], ecx
jmp 0x463275
mov dword [ebp - 0x28], 0x9dada439
mov dword [ebp - 0x24], ebx
jmp 0x46328e
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x430], ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x463281
mov dword [ebp - 0x24], ebx
jmp 0x4632a6
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x328], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x463299
mov dword [ebp - 0x1c], 0x508f
cmp dword [ebp - 0x1c], 0x522a
jle 0x463320
mov edx, ebx
mov dword [ebp - 0x28], ebx
mov eax, ebx
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov ecx, edi
shl eax, cl
and eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x40c]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4632e6
mov eax, dword [eax]
push eax
call fcn.0049e427
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x40c]
call fcn.0040a7b5
inc edi
cmp edi, 0x22f0
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x28]
jl 0x4632c8
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x9fd
jl 0x4632c6
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 0x22ba
jl 0x4632c1
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x463330
push ebx
call dword [0xaa1148]
mov dword [ebp - 4], 0x1c
cmp dword [ebp - 0x1c], 0x4d90
jge 0x46334b
push 0xa88540
call fcn.0049e427
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x463374
mov dword [ebp - 0x28], 2
cmp dword [ebp - 0x28], ebx
jl 0x46340a
push 3
lea ecx, [ebp - 0x190]
call fcn.0040a207
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x108], 9
mov dword [ebp - 0x104], 9
mov dword [ebp - 0x100], 9
mov dword [ebp - 0xfc], 9
mov dword [ebp - 0x1c], 0xae07ea4c
mov dword [ebp - 0x18], ebx
jmp 0x4633db
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x190]
mov dword [eax + ecx*4], 0x4cdb8faa
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4633c8
mov eax, dword [ebp - 0x190]
mov dword [eax], ebx
mov dword [ebp - 0x30], esi
inc dword [eax]
cmp dword [eax], 2
jle 0x4633e9
inc dword [ebp - 0x1c]
lea ecx, [ebp - 0x190]
call fcn.0040a2d9
dec dword [ebp - 0x28]
jns 0x463384
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x68], eax
or edi, 0xffffffff
mov dword [ebp - 0x38], edi
movdqa xmm0, xmmword [0xa8e0f0]
movdqu xmmword [ebp - 0x23c], xmm0
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], ebx
push dword [ebp + 8]
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x23c]
push eax
push ebx
lea ecx, [ebp - 0x13c]
call fcn.0040d25b
mov dword [ebp - 0x38], 4
jmp 0x4634c6
mov dword [ebp - 0x18], ebx
jmp 0x463477
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb4], 0x43250e6d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x463466
mov dword [ebp - 0xb0], 3
cmp dword [ebp - 0xb0], ebx
jl 0x4634c3
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x28], 3
cmp dword [ebp - 0x28], ebx
jl 0x4634bb
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x4634b6
push ebx
push ebx
push 0x10e2
push ebx
push ebx
call dword [0xaa13fc]
dec dword [ebp - 0x28]
jns 0x46349e
dec dword [ebp - 0xb0]
jns 0x46348f
dec dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0xffffffe6
jg 0x463461
mov dword [ebp - 0x28], 0x2b07
cmp dword [ebp - 0x28], 0x2d83
jle 0x463529
mov eax, ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x30], 0x37de
mov esi, ebx
mov ebx, dword [ebp - 0x1c]
mov eax, ebx
mov ecx, esi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
inc esi
cmp esi, 0x328b
jl 0x4634f0
dec ebx
mov dword [ebp - 0x1c], ebx
dec dword [ebp - 0x30]
push 0
pop ebx
jne 0x4634eb
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
cmp eax, 0x7ee3
jl 0x4634e1
xor esi, esi
inc esi
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x46353e
push ebx
push 0x1742
call dword [0xaa10a4]
mov dword [ebp - 4], 0x1e
cmp dword [ebp - 0x28], 0x2a6d
jge 0x46355d
mov edx, 0xa88598
mov ecx, 0xa9e1d8
call fcn.0040c865
mov dword [ebp - 4], edi
jmp 0x463588
lea ecx, [ebp - 0x13c]
call fcn.0040a2d9
cmp dword [ebp - 0x2c], 0
jne 0x46419a
cmp dword [ebp - 0xc4], 0
jle 0x46419a
mov dword [ebp - 0x30], 0x690c
cmp dword [ebp - 0x30], 0x6921
jle 0x463642
mov ecx, ebx
mov dword [ebp - 0x18], ebx
mov eax, ebx
mov dword [ebp - 0x1c], ebx
mov edx, ebx
mov dword [ebp - 0x28], edx
mov edi, ecx
mov ecx, eax
shl edi, cl
mov dword [ebp - 0x3c], edi
mov edi, ebx
mov eax, edx
mov ecx, edi
sar eax, cl
xor eax, dword [ebp - 0x3c]
cdq
push edx
push eax
lea ecx, [ebp - 0x31c]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4635f9
mov eax, dword [eax]
push eax
call fcn.0049e427
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x31c]
call fcn.0040a7b5
inc edi
cmp edi, 0x52cd
mov edx, dword [ebp - 0x28]
jl 0x4635d8
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 0x1351
jl 0x4635d6
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x55ab
mov ecx, dword [ebp - 0x18]
jl 0x4635c8
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 0x4b77
jl 0x4635c3
movdqa xmm0, xmmword [0xa8e0d0]
movdqu xmmword [ebp - 0x25c], xmm0
mov dword [ebp - 0x154], ebx
mov dword [ebp - 0x150], ebx
mov dword [ebp - 0x14c], ebx
push dword [ebp + 8]
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x25c]
push eax
push ebx
lea ecx, [ebp - 0x154]
call fcn.0040d25b
mov dword [ebp - 0x28], 0x5c8094a1
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], 0x923607a9
push 3
lea ecx, [ebp - 0x204]
call fcn.0040a207
mov dword [ebp - 0x1c], 0x5ce8
cmp dword [ebp - 0x1c], 0x604b
jle 0x4636d9
mov edi, ebx
mov esi, ebx
mov eax, esi
or eax, edi
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
inc esi
cmp esi, 0x31a0
jl 0x4636b3
inc edi
cmp edi, 0x3799
jl 0x4636b1
xor esi, esi
inc esi
mov dword [ebp - 4], 0x20
cmp dword [ebp - 0x1c], 0x5c01
jge 0x4636f8
mov edx, 0xa885e0
mov ecx, 0xa9e1d8
call fcn.0040c865
or edi, 0xffffffff
mov dword [ebp - 4], edi
jmp 0x463726
mov dword [ebp - 0x18], ebx
jmp 0x46373e
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x204]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x46372b
mov dword [ebp - 0x28], 3
cmp dword [ebp - 0x28], ebx
jl 0x4637eb
mov dword [ebp - 0x108], 0xd94fe5f3
mov dword [ebp - 0x104], 0xd94fe5f3
mov dword [ebp - 0x100], 0xd94fe5f3
mov dword [ebp - 0xfc], 0xd94fe5f3
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], 0xef054a20
mov dword [ebp - 0x34], 0xcb3a3fc4
mov dword [ebp - 0x34], 0xcef989b1
mov dword [ebp - 0x34], 9
mov dword [ebp - 0x34], 0xd45b0e82
push 3
lea ecx, [ebp - 0x1ec]
call fcn.0040a207
mov dword [ebp - 0x1c], 0xfffd
mov dword [ebp - 0x18], ebx
jmp 0x4637ce
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1ec]
mov dword [eax + ecx*4], 0x1b0ae28d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4637bb
inc dword [ebp - 0x1c]
lea ecx, [ebp - 0x1ec]
call fcn.0040a2d9
dec dword [ebp - 0x28]
jns 0x463754
lea ecx, [ebp - 0x204]
call fcn.0040a2d9
lea ecx, [ebp - 0x154]
call fcn.0040a2d9
mov dword [ebp - 4], 0x22
cmp dword [ebp - 0x30], 0x65a5
jge 0x46381c
push 0xa885c8
call fcn.0049e427
pop ecx
mov dword [ebp - 4], edi
jmp 0x463844
movdqa xmm0, xmmword [0xa8e0d0]
movdqu xmmword [ebp - 0x27c], xmm0
mov dword [ebp - 0xf8], ebx
mov dword [ebp - 0xf4], ebx
mov dword [ebp - 0xf0], ebx
push dword [ebp + 8]
lea eax, [ebp - 0x26c]
push eax
lea eax, [ebp - 0x27c]
push eax
push ebx
lea ecx, [ebp - 0xf8]
call fcn.0040d25b
mov dword [ebp - 0x34], 0x7e55
mov dword [ebp - 0x1c], 0x681a
cmp dword [ebp - 0x1c], 0x6aa6
jle 0x463913
mov dword [ebp - 0x38], ebx
mov ecx, ebx
mov dword [ebp - 0x28], ebx
mov eax, ebx
mov dword [ebp - 0x18], ebx
mov edi, ebx
cdq
idiv edi
sub ecx, edx
mov eax, dword [ebp - 0x38]
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x340]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4638cb
mov eax, dword [eax]
push eax
call fcn.0049e427
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x340]
call fcn.0040a7b5
inc edi
cmp edi, 0x3111
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
jl 0x4638a9
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x2c38
jl 0x4638a7
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, 0x1df8
jl 0x4638a2
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
cmp eax, 0x6927
jl 0x46389d
mov dword [ebp - 4], 0x24
cmp dword [ebp - 0x1c], 0x64eb
jge 0x46392e
push 0xa88648
call fcn.0049e427
pop ecx
or ecx, 0xffffffff
mov dword [ebp - 4], ecx
jmp 0x46395b
mov dword [ebp - 0x18], ebx
jmp 0x46396a
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x4c], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x463960
mov dword [ebp - 0x4c], 3
cmp dword [ebp - 0x4c], ebx
jl 0x46398e
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0xf8]
cmp dword [eax + ecx*4], ebx
jne 0x46398e
dec dword [ebp - 0x4c]
jns 0x46397b
lea ecx, [ebp - 0xf8]
call fcn.0040a2d9
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x24], eax
push esi
lea ecx, [ebp - 0x1a8]
call fcn.0040a207
mov dword [ebp - 0x18], 0x1f2c29a
mov dword [ebp - 0x34], 0xfffffffe
mov dword [ebp - 0x1c], 2
mov dword [ebp - 0x18], ebx
jmp 0x4639db
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1a8]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x4639c8
mov dword [ebp - 0x18], ebx
or edi, 0xffffffff
cmp dword [ebp - 0x18], ebx
jl 0x463a21
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x34], 0x800fa72c
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
jl 0x463a19
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x463a14
dec dword [ebp - 0x1c]
dec dword [ebp - 0x18]
jns 0x4639eb
mov eax, dword [ebp - 0x1a8]
cmp dword [eax], ebx
je 0x463a47
mov dword [ebp - 0x1c], 0xfffffff6
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x463a42
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x463a5d
push 2
lea ecx, [ebp - 0x21c]
call fcn.0040a207
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x28], ebx
jmp 0x4641c2
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x21c]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jl 0x4641af
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], ebx
jl 0x464244
push 3
lea ecx, [ebp - 0x124]
call fcn.0040a207
mov dword [ebp - 0x28], ebx
jmp 0x4641f5
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x124]
mov dword [eax + ecx*4], 0xd7953644
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x4641e2
mov eax, dword [ebp - 0x124]
mov dword [eax], esi
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x46421e
push ebx
push 0x179d
push ebx
push 0x1b61
call dword [0xaa13f4]
mov eax, dword [ebp - 0x124]
cmp dword [eax], ebx
jne 0x464231
or ecx, 0xffffffff
mov dword [eax], ecx
test cl, cl
jns 0x464203
lea ecx, [ebp - 0x124]
call fcn.0040a2d9
dec dword [ebp - 0x18]
jns 0x4641d0
or edi, 0xffffffff
lea ecx, [ebp - 0x21c]
call fcn.0040a2d9
lea ecx, [ebp - 0xc4]
call fcn.0045a57c
mov dword [ebp - 0x18], 0x1265
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], 0x32f3
mov dword [ebp - 0x34], 0x1355fff8
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x464281
call dword [0xaa12f8]
mov dword [ebp - 0x3c], 0x771e
cmp dword [ebp - 0x3c], 0x781f
jle 0x4642e0
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x1c], ebx
xor eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0x3f4]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4642b2
mov eax, dword [eax]
push eax
call fcn.0049e427
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x3f4]
call fcn.0040a7b5
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x51eb
jl 0x464298
inc edi
cmp edi, 0x757a
jl 0x464293
or edi, 0xffffffff
cmp dword [ebp - 0x18], 0x439beb06
jle 0x464313
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x30], 0x85e0710d
jne 0x464313
cmp dword [ebp - 0x30], ebx
jne 0x464313
cmp dword [ebp - 0x18], ebx
mov eax, ebx
je 0x464315
mov eax, esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 4], 0x2e
cmp dword [ebp - 0x3c], 0x73ce
jge 0x464333
push 0xa88790
call fcn.0049e427
pop ecx
mov dword [ebp - 4], edi
jmp 0x46435e
cmp dword [ebp - 0x40], 0
jne 0x464782
cmp dword [ebp - 0x2c], 0
je 0x464782
movdqa xmm0, xmmword [0xa8e0d0]
movdqu xmmword [ebp - 0x2bc], xmm0
mov dword [ebp - 0x130], ebx
mov dword [ebp - 0x12c], ebx
mov dword [ebp - 0x128], ebx
push dword [ebp + 8]
lea eax, [ebp - 0x2ac]
push eax
lea eax, [ebp - 0x2bc]
push eax
push ebx
lea ecx, [ebp - 0x130]
call fcn.0040d25b
mov dword [ebp - 0x28], ebx
jmp 0x4643c0
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x54], edi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], esi
jl 0x4643b6
mov dword [ebp - 0x54], 3
cmp dword [ebp - 0x54], ebx
jl 0x46442d
mov dword [ebp - 0x18], 8
mov dword [ebp - 0x18], ebx
jmp 0x464422
mov dword [ebp - 0x28], 3
mov dword [ebp - 0x28], ebx
jmp 0x464416
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x4643fe
push ebx
push 0xc2e
call dword [0xaa1504]
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x464413
push ebx
push 0x8c6
call dword [0xaa1508]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jle 0x4643e9
mov eax, dword [ebp - 0x18]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jle 0x4643dd
dec dword [ebp - 0x54]
jns 0x4643d1
lea ecx, [ebp - 0x130]
call fcn.0040a2d9
push dword [ebp - 0x48]
push dword [ebp - 0x2c]
call fcn.0044bfd2
pop ecx
pop ecx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x20], 3
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x30], 0x5cda
cmp dword [ebp - 0x30], 0x5f74
jle 0x4644e0
mov ecx, ebx
mov dword [ebp - 0x2c], ebx
mov eax, ebx
mov dword [ebp - 0x28], ebx
mov edi, ebx
mov edx, ebx
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x1c], 0x629d
add eax, ecx
and eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x424]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x464496
mov eax, dword [eax]
push eax
call fcn.0049e427
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x424]
call fcn.0040a7b5
mov edx, dword [ebp - 0x48]
add edx, edi
mov dword [ebp - 0x48], edx
dec dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
jne 0x46447a
inc edi
cmp edi, 0x7944
jl 0x46446e
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x69e4
jl 0x46446c
inc ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, 0x48d3
jl 0x464467
or edi, 0xffffffff
mov dword [ebp - 0x2c], ebx
jmp 0x4644f2
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x2ec], esi
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 4
jl 0x4644e5
mov dword [ebp - 4], 0x30
cmp dword [ebp - 0x30], 0x5b43
jge 0x464513
push 0xa887d0
call fcn.0049e427
pop ecx
mov dword [ebp - 4], edi
jmp 0x46453b
mov dword [ebp - 0x30], 0x13a
cmp dword [ebp - 0x30], 0x355
jle 0x46459d
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x48], 0x31f9
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0x448]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x464574
mov eax, dword [eax]
push eax
call fcn.0049e427
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x448]
call fcn.0040a7b5
dec edi
dec dword [ebp - 0x48]
jne 0x46455a
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
neg eax
add eax, 0xf3cc
xor edx, edx
cmp eax, 0xe9f0
setne dl
imul edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, dword [ebp - 0x20]
je 0x4645db
cmp dword [ebp - 0x20], ebx
mov ecx, esi
jne 0x4645dd
mov ecx, ebx
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
sete dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], ebx
je 0x464684
mov dword [ebp - 0x20], 0xfffa
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x18], 0xfff8
mov dword [ebp - 0x44], 0xfffffffa
mov dword [ebp - 0x28], 0x3c095b67
mov dword [ebp - 0x34], 0xc3ce99c2
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
sub eax, 0xffff
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x18]
jne 0x4647d0
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setg dl
xor eax, eax
test edx, edx
setns al
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp dword [ebp - 0x34], eax
setg cl
xor eax, eax
cmp eax, ecx
sbb eax, eax
inc eax
mov ecx, 0xa98815cb
cmp ecx, eax
sbb ecx, ecx
inc ecx
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x18]
cmp eax, 7
jge 0x464822
cmp dword [ebp - 0x2c], ebx
mov edx, ebx
je 0x464824
mov edx, esi
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setne cl
imul eax, ecx, 0x6ca0
neg eax
sbb eax, eax
neg eax
add eax, 0x7ce6477b
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], ebx
je 0x46495c
mov dword [ebp - 0x38], 0xd6a58390
push 2
lea ecx, [ebp - 0xec]
call fcn.0040a207
mov dword [ebp - 0x48], 0xf83bf0b
mov dword [ebp - 0x24], ebx
jmp 0x46487e
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xec]
mov dword [eax + ecx*4], 0x1cd4ee3b
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x46486b
mov dword [ebp - 0x24], ebx
jmp 0x46489a
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x24c], 0xf8616691
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x464889
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0xec]
cmp dword [eax], esi
jne 0x4648b3
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp eax, 0xfffffffe
setle cl
xor edx, edx
mov eax, dword [ebp - 0xec]
cmp ecx, dword [eax]
setle dl
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], 0x9b70
jne 0x4648eb
cmp dword [ebp - 0x24c], ebx
mov edx, ebx
je 0x4648ed
mov edx, esi
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x48]
mov ecx, 0x629bad2c
sub ecx, eax
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x28], ebx
jne 0x46490f
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xec]
mov eax, dword [eax]
inc eax
jne 0x464921
cmp dword [ebp - 0x38], ebx
mov eax, ebx
je 0x464923
mov eax, esi
mov ecx, dword [ebp - 0x38]
imul ecx, eax
mov eax, dword [ebp - 0x24c]
xor edx, edx
cmp ecx, eax
setge dl
xor ecx, ecx
cmp edx, 0xbb86
setl cl
xor eax, eax
cmp ecx, 0x4bbc
setle al
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0xec]
call fcn.0040a2d9
jmp 0x464971
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x464971
push ebx
push 0x8fc
call dword [0xaa14d8]
mov dword [ebp - 0x34], 0x286e
cmp dword [ebp - 0x34], 0x2bad
jle 0x4649e4
push 0xd6d
push 0x2b6
push ebx
call dword [0xaa1088]
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x48], ebx
mov eax, edi
cdq
idiv ecx
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x3dc]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4649b8
mov eax, dword [eax]
push eax
call fcn.0049e427
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x3dc]
call fcn.0040a7b5
mov ecx, dword [ebp - 0x48]
inc ecx
mov dword [ebp - 0x48], ecx
cmp ecx, 0x5584
jl 0x464999
inc edi
cmp edi, 0x68a0
jl 0x464994
mov eax, dword [ebp + 8]
mov edi, eax
lea esi, [ebp - 0x70]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret