Function at 0x10040af2
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
mov eax, 0x10065ff8
call fcn.10064c90
sub esp, 0x8d0
push ebx
push esi
push edi
mov dword [ebp - 0x38], 0xffffffff
xor ebx, ebx
mov dword [ebp - 0x10], esp
xor edi, edi
mov dword [ebp - 0x24], 0x3bf3
inc edi
push 3
mov dword [ebp - 0x20], 0xfff8
mov byte [ebp - 0x68], dl
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0x2c], ebx
pop esi
cmp dword [ebp - 0x2c], esi
jge 0x10040b45
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x6d0], edi
inc dword [ebp - 0x2c]
jmp 0x10040b31
cmp dword [ebp - 0x38], ebx
je 0x10040b88
push edi
lea ecx, [ebp - 0x2f4]
call fcn.1000f886
mov dword [ebp - 0x2c], ebx
jmp 0x10040b6b
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2f4]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edi
jl 0x10040b5b
mov eax, dword [ebp - 0x2f4]
lea ecx, [ebp - 0x2f4]
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
call fcn.1000f8e2
jmp 0x10040be9
mov dword [ebp - 0x14], 0x5c6f
mov dword [ebp - 0x2c], ebx
jmp 0x10040ba5
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x670], 5
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], esi
jl 0x10040b94
mov dword [ebp - 0x38], 0x272b
dec dword [ebp - 0x20]
imul eax, dword [ebp - 0x14], 0x8ae5
sub eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x20]
je 0x10040bca
mov eax, dword [ebp - 0x20]
mov eax, edi
jmp 0x10040bcc
mov eax, ebx
imul ecx, eax, 0x78e0
xor edx, edx
mov eax, dword [ebp - 0x24]
cmp eax, ecx
setne dl
mov dword [ebp - 0x668], edx
mov dword [ebp - 0x38], 8
mov dword [ebp - 0x24], ebx
jmp 0x10040bff
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x6d0], 0x46e74a6e
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x10040bee
push 2
pop esi
mov dword [ebp - 0x18], 0xffffffff
lea ecx, [ebp - 0x1f4]
mov dword [ebp - 0x24], ebx
push esi
call fcn.1000f886
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x1bc]
mov dword [ebp - 0x14], ebx
push edi
call fcn.1000f886
push 0xfffffffffffffff8
pop edx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x104], ebx
mov dword [ebp - 0x100], ebx
mov dword [ebp - 0xfc], ebx
mov dword [ebp - 0xf8], ebx
mov dword [ebp - 0x34], ebx
jmp 0x10040c61
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1f4]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], esi
jl 0x10040c52
mov dword [ebp - 0x34], ebx
jmp 0x10040c7a
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1bc]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], edi
jl 0x10040c6b
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x10040c8a
mov eax, dword [ebp - 0x18]
jne 0x10040c8f
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1f4]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1bc]
mov dword [eax], ecx
test ecx, ecx
je 0x10040d03
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1bc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x24]
je 0x10040cda
test eax, eax
mov eax, ebx
je 0x10040cdc
mov eax, edi
xor edx, edx
cmp eax, 0x87c837e0
mov eax, dword [ebp - 0x1f4]
sete dl
xor ecx, ecx
cmp edx, dword [eax + 4]
setne cl
cmp dword [eax], ecx
jle 0x10040d00
cmp dword [ebp - 0x24], ebx
je 0x10040d00
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1bc]
mov dword [eax], ecx
lea ecx, [ebp - 0x1bc]
call fcn.1000f8e2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1f4]
call fcn.1000f8e2
mov dword [ebp - 0x5c], 0x3d87
cmp dword [ebp - 0x5c], 0x3ed4
jle 0x10040dcf
push ebx
push 0x1bb5
call dword [0x10612248]
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x40], ebx
mov eax, ebx
mov dword [ebp - 0x3c], 0x4e06
mov dword [ebp - 0x44], eax
mov esi, dword [ebp - 0x58]
mov edi, ebx
lea ecx, [eax + edi]
mov eax, esi
shl eax, cl
lea ecx, [ebp - 0x760]
cdq
push edx
push eax
call fcn.1000d740
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10040d81
mov eax, dword [eax]
push eax
call fcn.1004f9c6
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x760]
call fcn.1000fbd5
mov eax, dword [ebp - 0x44]
inc edi
cmp edi, 0x1447
jl 0x10040d62
mov esi, dword [ebp - 0x40]
add eax, esi
dec dword [ebp - 0x3c]
mov dword [ebp - 0x44], eax
jne 0x10040d5d
inc esi
mov dword [ebp - 0x40], esi
cmp esi, 0x74ac
jl 0x10040d51
mov eax, dword [ebp - 0x58]
inc eax
mov dword [ebp - 0x58], eax
cmp eax, 0x1678
jl 0x10040d4e
xor edi, edi
push 2
inc edi
pop esi
cmp dword [ebp - 0x5c], 0x3bd5
jge 0x10040de3
push 0x1000b658
call fcn.1004f9c6
pop ecx
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x18], 0xfffffffd
mov dword [ebp - 0x2c], 0xca27289f
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x14], 0x74f0e4f
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10040e1d
push 0x24da
call dword [0x10612078]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], eax
je 0x10040e34
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], edi
xor edx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setg dl
xor ebx, ebx
cmp edx, eax
setle bl
xor ecx, ecx
add ebx, dword [ebp - 0x18]
imul ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp ebx, eax
setge cl
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
inc eax
test eax, eax
jle 0x10040e7d
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x24], 0x3bf3
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x44], 0xf2d6273
mov dword [ebp - 0x58], 0x229a275f
push 3
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x2c], 0
pop ecx
jmp 0x10040eca
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x688], 0x9e885dc1
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ecx
jl 0x10040eb9
mov dword [ebp - 0x3c], 0x8f6c
xor edx, edx
mov eax, dword [ebp - 0x34]
cmp eax, 0xdacd
mov eax, dword [ebp - 0x34]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x34]
push 3
setg cl
cmp ecx, 0xa017779a
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x34]
setne dl
xor ebx, ebx
sub edx, eax
mov dword [ebp - 0x688], edx
mov dword [ebp - 0x44], edx
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
cmp ecx, eax
setg bl
sub ebx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
neg ebx
mov eax, dword [ebp - 0x3c]
sbb ebx, ebx
xor edx, edx
inc ebx
cmp eax, ecx
setl dl
xor eax, eax
cmp edx, ebx
setl al
cmp eax, edi
sbb eax, eax
xor ecx, ecx
neg eax
imul eax, eax, 0xffff
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x44]
cmp eax, 0xffff
setne cl
xor ebx, ebx
imul ecx, dword [ebp - 0x58]
mov dword [ebp - 0x58], ecx
lea ecx, [ebp - 0x59c]
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x14], 0x4e1a3622
mov dword [ebp - 0x14], 0x43cdf98a
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], 0x3fbb4ebb
mov dword [ebp - 0x14], 0xe63e3155
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x14], 0x8fb0b44
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], 0x874da862
call fcn.1000f886
mov dword [ebp - 0x44], 0x3147f59e
mov dword [ebp - 0x34], ebx
jmp 0x10040fce
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x584], 0xffffffff
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], esi
jl 0x10040fbd
push 3
mov dword [ebp - 0x34], ebx
pop edx
jmp 0x10040fea
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x59c]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], edx
jl 0x10040fdb
dec dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x580]
mov eax, dword [ebp - 0x44]
inc dword [ebp - 0x44]
cmp ecx, eax
mov ecx, edi
cmovne ecx, ebx
xor eax, eax
cmp ecx, 0x2d2c87a7
lea ecx, [ebp - 0x59c]
setne al
mov dword [ebp - 0x14], eax
call fcn.1000f8e2
push 3
mov dword [ebp - 0x20], 0xfff8
mov dword [ebp - 0x2c], ebx
pop ecx
jmp 0x1004103a
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x6a0], edi
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ecx
jl 0x1004102d
cmp dword [ebp - 0x38], ebx
je 0x10041082
push edi
lea ecx, [ebp - 0x3cc]
call fcn.1000f886
mov dword [ebp - 0x2c], ebx
jmp 0x10041065
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3cc]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edi
jl 0x10041055
mov eax, dword [ebp - 0x3cc]
lea ecx, [ebp - 0x3cc]
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
call fcn.1000f8e2
jmp 0x100410e3
mov dword [ebp - 0x14], 0x5c6f
mov dword [ebp - 0x2c], ebx
jmp 0x1004109f
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x6b8], 5
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ecx
jl 0x1004108e
mov dword [ebp - 0x38], 0x272b
dec dword [ebp - 0x20]
imul eax, dword [ebp - 0x14], 0x8ae5
sub eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x20]
je 0x100410c4
mov eax, dword [ebp - 0x20]
mov eax, edi
jmp 0x100410c6
mov eax, ebx
imul ecx, eax, 0x78e0
xor edx, edx
mov eax, dword [ebp - 0x24]
cmp eax, ecx
setne dl
mov dword [ebp - 0x6b0], edx
mov dword [ebp - 0x38], 8
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], 5
mov dword [ebp - 0x3c], 0x6b46
cmp dword [ebp - 0x3c], 0x6d3b
jle 0x10041187
push 0xdac
call dword [0x10612220]
mov edx, ebx
mov dword [ebp - 0x2c], ebx
mov ecx, ebx
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov esi, ebx
lea eax, [esi + edi]
and eax, ecx
lea ecx, [ebp - 0x6f4]
xor eax, edx
cdq
push edx
push eax
call fcn.1000d740
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1004113c
mov eax, dword [eax]
push eax
call fcn.1004f9c6
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x6f4]
call fcn.1000fbd5
mov ecx, dword [ebp - 0x20]
inc esi
mov edx, dword [ebp - 0x2c]
cmp esi, 0x1d84
jl 0x1004111d
inc edi
cmp edi, 0x3c25
jl 0x1004111b
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0x6cea
jl 0x10041119
inc edx
mov dword [ebp - 0x2c], edx
cmp edx, 0x2896
jl 0x10041114
xor edi, edi
push 2
inc edi
pop esi
mov dword [ebp - 0x38], 0x9ec6ea3d
cmp dword [ebp - 0x3c], 0x6b06
jge 0x100411a2
push 0x1000b6b8
call fcn.1004f9c6
pop ecx
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
je 0x10041215
cmp dword [ebp - 0x24], edi
jne 0x100411bd
mov eax, ebx
cmp dword [ebp - 0x24], ebx
je 0x100411bf
mov eax, edi
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x50]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
sub eax, dword [ebp - 0x50]
cmp eax, 9
setle cl
sub ecx, 0xfffffffd
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x6d8f
setg al
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x38], ebx
je 0x10041247
mov dword [ebp - 0x14], 0xc0266d99
mov edx, edi
mov eax, dword [ebp - 0x14]
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x28]
cmp edx, eax
setle cl
mov dword [ebp - 0x28], ecx
imul eax, dword [ebp - 0x28], 0xde2c
mov dword [ebp - 0x38], eax
jmp 0x100413f9
mov dword [ebp - 0x14], 0x2f7f1c74
mov dword [ebp - 0x2c], ebx
jmp 0x10041264
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0xb0], 0x73ee
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], esi
jl 0x10041253
mov dword [ebp - 0x38], ebx
cmp dword [ebp - 0x38], 0xffffffe3
jge 0x100413f6
mov dword [ebp - 0x40], 0xe6047311
mov dword [ebp - 0x28], edi
cmp dword [ebp - 0x28], ebx
jl 0x100413ee
mov dword [ebp - 0x14], 0xcc37069e
mov eax, dword [ebp - 0x28]
cmp dword [ebp + eax*4 - 0xb0], ebx
je 0x10041355
mov dword [ebp - 0x3c], 0x63d2
cmp dword [ebp - 0x3c], 0x6734
jle 0x10041313
mov ecx, ebx
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov esi, ebx
mov eax, edi
cdq
idiv esi
xor edx, ecx
lea ecx, [ebp - 0x790]
mov eax, edx
cdq
push edx
push eax
call fcn.1000d740
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100412da
mov eax, dword [eax]
push eax
call fcn.1004f9c6
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x790]
call fcn.1000fbd5
mov ecx, dword [ebp - 0x20]
inc esi
cmp esi, 0x6b69
jl 0x100412b9
inc edi
cmp edi, 0x3c87
jl 0x100412b7
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0x7114
jl 0x100412b5
xor edi, edi
inc edi
mov byte [ebp - 0x19], bl
cmp dword [ebp - 0x3c], 0x616d
jge 0x1004132a
push 0x1000b718
call fcn.1004f9c6
pop ecx
or dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x19], 0
je 0x100413e6
push ebx
push 0x5c4
push 0x460
push 0x419
push ebx
push ebx
call dword [0x10612160]
jmp 0x100413e6
mov eax, dword [ebp - 0x28]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0xb0]
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0xb0], ecx
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0xac]
mov eax, dword [ebp - 0x40]
cmp eax, edi
mov eax, dword [ebp - 0x28]
setle dl
mov ecx, dword [ebp + eax*4 - 0xb0]
xor eax, eax
cmp edx, 8
sete al
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x28]
setle dl
xor ebx, ebx
neg edx
mov eax, dword [ebp + eax*4 - 0xb0]
cmp edx, 0x9dda
setg bl
xor ecx, ecx
cmp ebx, eax
setne cl
xor ebx, ebx
add ecx, dword [ebp - 0x40]
cmp ecx, dword [ebp - 0x14]
jle 0x100413cb
mov eax, dword [ebp - 0x28]
cmp dword [ebp + eax*4 - 0xb0], ebx
mov eax, edi
jne 0x100413cd
mov eax, ebx
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x100413e6
push edi
push ebx
push 0x135d
call dword [0x106122d4]
dec dword [ebp - 0x28]
jmp 0x10041280
dec dword [ebp - 0x38]
jmp 0x1004126c
push 2
pop esi
push 3
mov dword [ebp - 0x24], ebx
pop ecx
jmp 0x10041412
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x6a0], 0x46e74a6e
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ecx
jl 0x10041401
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x18], 0xfffffffd
mov dword [ebp - 0x2c], 0xca27289f
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x14], 0x74f0e4f
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x1004144d
push 0x24da
call dword [0x10612078]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], eax
je 0x10041464
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], edi
xor edx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setg dl
xor ebx, ebx
cmp edx, eax
setle bl
xor ecx, ecx
add ebx, dword [ebp - 0x18]
imul ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp ebx, eax
setge cl
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
inc eax
test eax, eax
jle 0x100414ad
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x38], 0x3bf3
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x44], 0xf2d6273
mov dword [ebp - 0x58], 0x229a275f
push 3
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x2c], 0
pop ecx
jmp 0x100414fa
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x664], 0x9e885dc1
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ecx
jl 0x100414e9
mov dword [ebp - 0x3c], 0x8f6c
xor edx, edx
mov eax, dword [ebp - 0x34]
cmp eax, 0xdacd
mov eax, dword [ebp - 0x34]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x34]
push 3
setg cl
cmp ecx, 0xa017779a
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x34]
setne dl
xor ebx, ebx
sub edx, eax
mov dword [ebp - 0x664], edx
mov dword [ebp - 0x44], edx
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
cmp ecx, eax
setg bl
sub ebx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
neg ebx
mov eax, dword [ebp - 0x3c]
sbb ebx, ebx
xor edx, edx
inc ebx
cmp eax, ecx
setl dl
xor eax, eax
cmp edx, ebx
setl al
cmp eax, edi
sbb eax, eax
xor ecx, ecx
neg eax
imul eax, eax, 0xffff
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x44]
cmp eax, 0xffff
setne cl
xor ebx, ebx
imul ecx, dword [ebp - 0x58]
mov dword [ebp - 0x58], ecx
lea ecx, [ebp - 0x5b4]
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x54], 0xfff8
mov dword [ebp - 0x14], 0x4e1a3622
mov dword [ebp - 0x14], 0x43cdf98a
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], 0x3fbb4ebb
mov dword [ebp - 0x14], 0xe63e3155
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x14], 0x8fb0b44
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], 0x874da862
call fcn.1000f886
mov dword [ebp - 0x44], 0x3147f59e
mov dword [ebp - 0x34], ebx
jmp 0x10041605
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x570], 0xffffffff
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], esi
jl 0x100415f4
push 3
mov dword [ebp - 0x34], ebx
pop edx
jmp 0x10041621
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x5b4]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], edx
jl 0x10041612
dec dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x56c]
inc dword [ebp - 0x44]
cmp eax, ecx
mov ecx, edi
cmovne ecx, ebx
xor eax, eax
cmp ecx, 0x2d2c87a7
lea ecx, [ebp - 0x5b4]
setne al
mov dword [ebp - 0x14], eax
call fcn.1000f8e2
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], 5
mov dword [ebp - 0x4c], 0x9ec6ea3d
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
je 0x100416d8
cmp dword [ebp - 0x24], edi
jne 0x10041680
mov eax, ebx
cmp dword [ebp - 0x24], ebx
je 0x10041682
mov eax, edi
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x50]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
sub eax, dword [ebp - 0x50]
cmp eax, 9
setle cl
sub ecx, 0xfffffffd
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x6d8f
setg al
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x4c], ebx
je 0x1004170a
mov dword [ebp - 0x14], 0xc0266d99
mov edx, edi
mov eax, dword [ebp - 0x14]
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x28]
cmp edx, eax
setle cl
mov dword [ebp - 0x28], ecx
imul eax, dword [ebp - 0x28], 0xde2c
mov dword [ebp - 0x4c], eax
jmp 0x1004182b
mov dword [ebp - 0x14], 0x2f7f1c74
mov dword [ebp - 0x2c], ebx
jmp 0x10041727
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0xa8], 0x73ee
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], esi
jl 0x10041716
mov dword [ebp - 0x4c], ebx
jmp 0x10041821
mov dword [ebp - 0x3c], 0xe6047311
mov dword [ebp - 0x28], edi
cmp dword [ebp - 0x28], ebx
jl 0x1004181e
mov dword [ebp - 0x14], 0xcc37069e
mov eax, dword [ebp - 0x28]
cmp dword [ebp + eax*4 - 0xa8], ebx
je 0x10041784
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10041815
push ebx
push 0x5c4
push 0x460
push 0x419
push ebx
push ebx
call dword [0x10612160]
jmp 0x10041815
mov eax, dword [ebp - 0x28]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0xa8]
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0xa8], ecx
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x3c]
cmp eax, edi
mov eax, dword [ebp - 0x28]
setle dl
mov ecx, dword [ebp + eax*4 - 0xa8]
xor eax, eax
cmp edx, 8
sete al
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x28]
setle dl
xor ebx, ebx
neg edx
mov eax, dword [ebp + eax*4 - 0xa8]
cmp edx, 0x9dda
setg bl
xor ecx, ecx
cmp ebx, eax
setne cl
xor ebx, ebx
add ecx, dword [ebp - 0x3c]
cmp ecx, dword [ebp - 0x14]
jle 0x100417fa
mov eax, dword [ebp - 0x28]
cmp dword [ebp + eax*4 - 0xa8], ebx
mov eax, edi
jne 0x100417fc
mov eax, ebx
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10041815
push edi
push ebx
push 0x135d
call dword [0x106122d4]
dec dword [ebp - 0x28]
jns 0x10041747
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xffffffe3
jl 0x10041734
push 3
mov dword [ebp - 0x2c], ebx
pop ecx
jmp 0x10041840
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x694], edi
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ecx
jl 0x10041833
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x44], 0x43e9
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x2c], ebx
jmp 0x1004186c
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x1c8], ebx
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], esi
jl 0x1004185f
mov dword [ebp - 0x24], ebx
jmp 0x100418e4
mov dword [ebp - 0x4c], 0x59e57ad9
mov dword [ebp - 0x14], 0x5a9576c3
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x3c], 0xa388
mov dword [ebp - 0x4c], ebx
jmp 0x100418db
mov dword [ebp - 0x14], 0xfffffffd
lea ecx, [ebp - 0x5cc]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], 5
push edi
call fcn.1000f886
mov dword [ebp - 0x2c], ebx
jmp 0x100418c5
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x5cc]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edi
jl 0x100418b5
dec dword [ebp - 0x3c]
lea ecx, [ebp - 0x5cc]
call fcn.1000f8e2
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xffffffec
jge 0x10041893
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x14
je 0x10041876
mov eax, dword [ebp - 0x44]
xor edx, edx
mov ecx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0x44]
dec ecx
cmp ecx, eax
sete dl
imul edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0x44]
inc edx
neg edx
sbb edx, edx
imul eax, dword [ebp - 0x1c4]
inc edx
add eax, edx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x30], ebx
je 0x10041c4d
movdqa xmm0, xmmword [0x1000c2f0]
lea ecx, [ebp - 0x61c]
push ecx
lea eax, [ebp - 0x60c]
mov dword [ebp - 0x28], 0x546158d3
push eax
push ecx
mov dword [ebp - 0x18], 9
lea ecx, [ebp - 0x144]
movdqu xmmword [ebp - 0x61c], xmm0
call fcn.100408bc
mov dword [ebp - 0x3c], 0xfffffffa
mov dword [ebp - 0x14], 0xad14ca72
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
je 0x1004198c
mov dword [ebp - 0x18], ebx
mov ecx, dword [ebp - 0x18]
test ecx, ecx
mov eax, dword [ebp - 0x144]
mov dword [eax + 4], ecx
mov ecx, edi
jne 0x1004198e
mov ecx, ebx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
add eax, 0x908d528
cmp ecx, eax
jge 0x100419a8
cmp dword [ebp - 0x28], ebx
je 0x100419cf
mov eax, dword [ebp - 0x144]
cmp dword [eax], ebx
je 0x100419cf
mov dword [ebp - 0x14], 0xd1b4
mov dword [ebp - 0x18], ebx
jmp 0x100419c7
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x10
jle 0x100419be
jmp 0x100419db
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x144]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x144]
cmp dword [eax + 4], ebx
jne 0x100419f4
mov eax, dword [ebp - 0x28]
mov ecx, ebx
cmp dword [ebp - 0x28], 0xf0e5fe69
jle 0x100419f6
mov ecx, edi
mov eax, dword [ebp - 0x28]
imul eax, ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
inc eax
cmp eax, edi
jl 0x10041a14
mov edx, edi
cmp dword [ebp - 0x18], ebx
jne 0x10041a16
mov edx, ebx
mov eax, dword [ebp - 0x144]
xor ecx, ecx
cmp edx, dword [eax + 8]
setl cl
mov dword [eax], ecx
lea ecx, [ebp - 0x144]
mov dword [ebp - 0x3c], edi
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], 0xffffffff
call fcn.1000f8e2
push edi
lea ecx, [ebp - 0x450]
call fcn.1000f886
push 7
pop eax
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x30c]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x3c], 0x53606de7
mov dword [ebp - 0x14], 0xfffffff9
mov dword [ebp - 0x3c], 0xea983111
mov dword [ebp - 0x44], 0xd568d526
mov dword [ebp - 0x5c], 0xffffffff
mov dword [ebp - 0x14], 0xfffffffa
mov dword [ebp - 0x48], 0x9ce456
mov dword [ebp - 0x14], 0x4d513c61
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x14], 0x3ffaf072
mov dword [ebp - 0x3c], 0x746a1c17
mov dword [ebp - 0x14], 0xb7ab61b5
push 3
call fcn.1000f886
mov byte [ebp - 4], 8
push 3
mov dword [ebp - 0x3c], 0x8bc0
mov dword [ebp - 0x34], ebx
pop edx
jmp 0x10041ad5
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], edx
jl 0x10041ac6
mov dword [ebp - 0x34], ebx
jmp 0x10041af0
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x2b4], 9
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], esi
jl 0x10041adf
dec dword [ebp - 0x3c]
mov dword [ebp - 0x58], 0x3a9f
cmp dword [ebp - 0x58], 0x3c7a
jle 0x10041b79
mov edi, ebx
mov dword [ebp - 0x40], ebx
mov esi, ebx
mov dword [ebp - 0x3c], ebx
lea eax, [esi + edi]
mov esi, 0x5fb6
mov dword [ebp - 0x14], eax
mov edi, eax
mov eax, edi
lea ecx, [ebp - 0x874]
cdq
push edx
push eax
call fcn.1000d740
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10041b39
mov eax, dword [eax]
push eax
call fcn.1004f9c6
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x874]
call fcn.1000fbd5
dec edi
dec esi
jne 0x10041b1f
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
inc esi
mov dword [ebp - 0x3c], esi
cmp esi, 0x5b2b
jl 0x10041b12
inc edi
mov dword [ebp - 0x40], edi
cmp edi, 0x58a5
jl 0x10041b0d
push 2
pop esi
xor edi, edi
push 3
inc edi
pop edx
mov eax, dword [ebp - 0x5c]
cmp edx, eax
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x5c]
jge 0x10041b8e
mov ecx, edi
cmp dword [ebp - 0x44], ebx
jne 0x10041b90
mov ecx, ebx
mov eax, dword [ebp - 0x30c]
mov dword [eax], ecx
mov dword [ebp - 0x3c], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x3c]
cmp eax, 0x76c
setl cl
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x44], esi
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x2b4]
sub ecx, eax
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [ebp - 0x3c], ecx
mov ecx, 0xb0121307
imul eax, dword [ebp - 0x3c], 0xedda
sub ecx, eax
mov eax, dword [ebp - 0x2b4]
cmp eax, ecx
mov eax, dword [ebp - 0x48]
setge dl
xor ecx, ecx
cmp edx, 0x720d7006
setge cl
add eax, ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x58], 0x39fa
jge 0x10041c09
push 0x1000b770
call fcn.1004f9c6
pop ecx
lea ecx, [ebp - 0x30c]
call fcn.1000f8e2
mov dword [ebp - 0x2c], ebx
jmp 0x10041c29
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x450]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edi
jl 0x10041c19
mov eax, dword [ebp - 0x450]
lea ecx, [ebp - 0x450]
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
or dword [ebp - 4], 0xffffffff
call fcn.1000f8e2
jmp 0x100422a9
mov dword [ebp - 0x2c], ebx
lea ecx, [ebp - 0x55c]
mov dword [ebp - 0x14], 0x7df2f4a8
mov dword [ebp - 0x14], 0xfffffff8
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], 0xffffffff
push esi
call fcn.1000f886
mov dword [ebp - 0x3c], 0x3c407858
mov dword [ebp - 0x2c], ebx
jmp 0x10041c9a
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x55c]
mov dword [eax + ecx*4], 0x21ac4888
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], esi
jl 0x10041c87
inc dword [ebp - 0x3c]
mov dword [ebp - 0x2c], ebx
jmp 0x10041cc0
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10041cbd
push 0x1c30
push ebx
push ebx
call dword [0x10612138]
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xffffffed
jg 0x10041ca7
lea ecx, [ebp - 0x55c]
call fcn.1000f8e2
mov dword [ebp - 0x60], 0x5c6f
lea ecx, [ebp - 0x324]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], 0xaeb9ae77
push edi
call fcn.1000f886
mov dword [ebp - 0x34], ebx
jmp 0x10041d04
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x8cc], 0xdada439b
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 4
jl 0x10041cf3
mov dword [ebp - 0x34], ebx
jmp 0x10041d22
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x324]
mov dword [eax + ecx*4], 0x5559
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], edi
jl 0x10041d0f
mov eax, dword [ebp - 0x324]
lea ecx, [ebp - 0x324]
dec dword [eax]
call fcn.1000f8e2
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x3c], 0x53606de7
mov dword [ebp - 0x14], 0xfffffff9
mov dword [ebp - 0x3c], 0xea983111
mov dword [ebp - 0x44], 0xd568d526
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x14], 0xfffffffa
mov dword [ebp - 0x48], 0x9ce456
mov dword [ebp - 0x14], 0x4d513c61
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x14], 0x3ffaf072
mov dword [ebp - 0x58], 0x6e2b
cmp dword [ebp - 0x58], 0x6fb3
jle 0x10041e25
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov dword [ebp - 0x5c], ebx
mov eax, edi
mov dword [ebp - 0x40], 0x4c5f
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x14], edi
mov esi, ebx
xor edi, eax
mov eax, esi
lea ecx, [ebp - 0x7c0]
or eax, edi
cdq
push edx
push eax
call fcn.1000d740
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10041dd1
mov eax, dword [eax]
push eax
call fcn.1004f9c6
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x7c0]
call fcn.1000fbd5
inc esi
cmp esi, 0x3127
jl 0x10041db5
mov eax, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x20]
dec eax
dec dword [ebp - 0x40]
mov dword [ebp - 0x3c], eax
jne 0x10041dae
mov edi, dword [ebp - 0x5c]
inc edi
mov dword [ebp - 0x5c], edi
cmp edi, 0x10dd
jl 0x10041d9f
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x5176
jl 0x10041d9a
xor edi, edi
push 2
inc edi
pop esi
mov dword [ebp - 0x3c], 0x746a1c17
cmp dword [ebp - 0x58], 0x6c6b
jge 0x10041e40
push 0x1000b7b8
call fcn.1004f9c6
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3e4]
mov dword [ebp - 0x14], 0xb7ab61b5
push 3
call fcn.1000f886
push 3
mov dword [ebp - 0x3c], 0x8bc0
mov dword [ebp - 0x34], ebx
pop edx
jmp 0x10041e76
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3e4]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], edx
jl 0x10041e67
mov dword [ebp - 0x34], ebx
jmp 0x10041e91
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x2a4], 9
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], esi
jl 0x10041e80
dec dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
cmp edx, eax
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x30]
jge 0x10041eae
mov ecx, edi
cmp dword [ebp - 0x44], ebx
jne 0x10041eb0
mov ecx, ebx
mov eax, dword [ebp - 0x3e4]
mov dword [eax], ecx
mov dword [ebp - 0x3c], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x3c]
cmp eax, 0x76c
setl cl
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x44], esi
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x2a4]
sub ecx, eax
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [ebp - 0x3c], ecx
mov ecx, 0xb0121307
imul eax, dword [ebp - 0x3c], 0xedda
sub ecx, eax
mov eax, dword [ebp - 0x2a4]
cmp eax, ecx
mov eax, dword [ebp - 0x48]
setge dl
xor ecx, ecx
cmp edx, 0x720d7006
setge cl
add eax, ecx
lea ecx, [ebp - 0x3e4]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x14], eax
call fcn.1000f8e2
push 3
lea ecx, [ebp - 0x248]
call fcn.1000f886
push 3
mov dword [ebp - 0x24], 0xdada439b
mov dword [ebp - 0x2c], ebx
pop edx
jmp 0x10041f4b
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x248]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edx
jl 0x10041f3c
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10041f63
push ebx
call dword [0x10612208]
push 3
pop edx
mov dword [ebp - 0x24], esi
cmp dword [ebp - 0x24], ebx
jl 0x10041ffb
mov dword [ebp - 0x4c], 0xfe4d9edb
mov dword [ebp - 0x2c], ebx
jmp 0x10041f8c
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x150], 0x24cdb8fa
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edx
jl 0x10041f7b
mov dword [ebp - 0x148], ebx
jmp 0x10041fb4
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x248]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0x148]
cmp dword [ebp - 0x148], esi
jle 0x10041f99
mov dword [ebp - 0x4c], ebx
jmp 0x10041fea
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x2c], ebx
jmp 0x10041fe2
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x248]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], esi
jle 0x10041fcd
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], esi
jle 0x10041fc1
dec dword [ebp - 0x24]
push 3
pop edx
jns 0x10041f6f
lea ecx, [ebp - 0x248]
call fcn.1000f8e2
push 3
mov dword [ebp - 0x2c], ebx
pop ecx
jmp 0x1004201f
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x67c], 5
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ecx
jl 0x1004200e
movdqa xmm0, xmmword [0x1000c340]
lea ecx, [ebp - 0x62c]
push ecx
lea eax, [ebp - 0x61c]
mov dword [ebp - 0x34], 0xf5a9c4c8
push eax
push ecx
lea ecx, [ebp - 0x33c]
movdqu xmmword [ebp - 0x62c], xmm0
call fcn.100408bc
mov dword [ebp - 0x3c], 0xffff
mov dword [ebp - 0x44], 0xfad7494d
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x3c], 0x150040b3
push 4
pop ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x48], 0xf32afcb0
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x2c], ebx
jmp 0x1004209b
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x5f4], 0x253d9751
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ecx
jl 0x1004208a
cmp dword [ebp - 0x34], ebx
je 0x100421a4
mov ecx, dword [ebp - 0x34]
xor edx, edx
mov eax, dword [ebp - 0x34]
cmp ecx, eax
mov eax, dword [ebp - 0x34]
mov edi, dword [ebp - 0x33c]
setge dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, dword [edi + 4]
mov esi, dword [edi + 0xc]
setg al
imul eax, esi
test eax, eax
je 0x100420e1
test esi, esi
je 0x100420e1
xor ecx, ecx
inc ecx
jmp 0x100420e3
mov ecx, ebx
xor eax, eax
cmp ecx, 0xca8c
setl al
xor edx, edx
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
cmp ecx, eax
mov eax, dword [ebp - 0x34]
setne dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x44]
add eax, dword [edi + 4]
neg eax
je 0x1004211f
cmp dword [ebp - 0x44], ebx
je 0x1004211f
xor ecx, ecx
inc ecx
jmp 0x10042121
mov ecx, ebx
xor eax, eax
cmp ecx, dword [edi + 4]
sete al
xor edx, edx
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
cmp eax, ecx
mov esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x5f4]
setle dl
sub esi, edx
neg esi
sbb esi, esi
xor ecx, ecx
inc esi
cmp esi, eax
setne cl
xor eax, eax
cmp ecx, 0x18eb0bad
setge al
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], ebx
jne 0x1004216c
cmp dword [edi + 4], ebx
jne 0x1004216c
mov eax, ebx
jmp 0x1004216f
xor eax, eax
inc eax
cmp eax, dword [ebp - 0x34]
jne 0x10042180
cmp dword [ebp - 0x5f4], ebx
jne 0x10042180
mov edx, ebx
jmp 0x10042183
xor edx, edx
inc edx
mov eax, dword [ebp - 0x5f4]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x14]
push 2
setne cl
sub ecx, eax
imul ecx, dword [ebp - 0x48]
pop esi
sub ecx, dword [ebp - 0x40]
jne 0x100421a4
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x33c]
lea ecx, [ebp - 0x33c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x40], eax
call fcn.1000f8e2
mov dword [ebp - 0x30], 0x272b
xor edi, edi
dec dword [ebp - 0x54]
inc edi
imul eax, dword [ebp - 0x60], 0x8ae5
sub eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x54]
je 0x100421de
mov eax, dword [ebp - 0x54]
mov eax, edi
jmp 0x100421e0
mov eax, ebx
imul ecx, eax, 0x78e0
xor edx, edx
mov eax, dword [ebp - 0x38]
push edi
cmp eax, ecx
lea ecx, [ebp - 0x444]
setne dl
mov dword [ebp - 0x674], edx
mov dword [ebp - 0x3c], edi
call fcn.1000f886
mov dword [ebp - 0x34], ebx
jmp 0x1004221b
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x90], 0xb064
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], esi
jl 0x1004220a
mov dword [ebp - 0x34], ebx
jmp 0x10042238
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x444]
mov dword [eax + ecx*4], 0x2f3f6085
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], edi
jl 0x10042225
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10042251
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x5c], 0xd65121ac
mov dword [ebp - 0x14], 0xd26ec17e
mov dword [ebp - 0x40], 0x2aff
cmp dword [ebp - 0x40], 0x2b81
jle 0x10042338
mov ecx, ebx
mov dword [ebp - 0x30], ebx
mov eax, ebx
mov dword [ebp - 0x44], ebx
mov esi, ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x14], esi
mov edi, ebx
and esi, eax
mov eax, edi
xor eax, ecx
mov ecx, 0x1060f718
xor eax, esi
cdq
push edx
push eax
call fcn.1000f771
mov ecx, dword [ebp - 0x30]
inc edi
cmp edi, 0x20ae
jl 0x100422ea
mov esi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x44]
inc esi
mov dword [ebp - 0x3c], esi
cmp esi, 0x5ede
jl 0x100422e3
inc eax
mov dword [ebp - 0x44], eax
cmp eax, 0x3f94
jl 0x100422de
inc ecx
mov dword [ebp - 0x30], ecx
cmp ecx, 0x31e
jl 0x100422d9
xor edi, edi
push 2
inc edi
pop esi
mov dword [ebp - 0x44], 0xffff
mov dword [ebp - 4], 0xd
cmp dword [ebp - 0x40], 0x2932
jge 0x1004235e
mov edx, 0x1000b804
mov ecx, 0x1060f718
call fcn.100111e1
or dword [ebp - 4], 0xffffffff
push 3
pop ecx
mov dword [ebp - 0x30], ebx
jmp 0x100423a6
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x814], 0x6a9ef72d
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], ecx
jl 0x10042395
inc dword [ebp - 0x5c]
mov dword [ebp - 0x5c], 0x6723
cmp dword [ebp - 0x5c], 0x685f
jle 0x1004241d
mov eax, ebx
mov dword [ebp - 0x30], ebx
mov edi, ebx
mov dword [ebp - 0x40], ebx
mov esi, ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x3c], 0xb2a
or eax, edi
mov ecx, 0x1060f718
cdq
push edx
push eax
call fcn.1000f771
mov eax, dword [ebp - 0x30]
add edi, esi
dec dword [ebp - 0x3c]
jne 0x100423d4
mov edi, dword [ebp - 0x40]
inc esi
cmp esi, 0x1b46
jl 0x100423ca
inc edi
mov dword [ebp - 0x40], edi
cmp edi, 0x1886
jl 0x100423c8
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x22af
jl 0x100423c3
push ebx
call dword [0x10612134]
xor edi, edi
push 2
inc edi
pop esi
dec dword [ebp - 0x44]
mov dword [ebp - 4], 0xf
cmp dword [ebp - 0x5c], 0x65e4
jge 0x1004243f
mov edx, 0x1000b82c
mov ecx, 0x1060f718
call fcn.100111e1
or dword [ebp - 4], 0xffffffff
push 3
pop ecx
mov dword [ebp - 0x38], ebx
jmp 0x10042487
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax*4 - 0x694], 0x46e74a6e
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], ecx
jl 0x10042476
mov dword [ebp - 0x38], 0xd06ce125
mov dword [ebp - 0x2c], 0xfe4b2830
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x30], ebx
jmp 0x100424b3
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x118], edi
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edi
jl 0x100424a6
mov dword [ebp - 0x38], ebx
jmp 0x100424ce
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax*4 - 0x118], 0xfff7
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], edi
jl 0x100424bd
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x2c]
test eax, eax
mov eax, dword [ebp - 0x38]
setns cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x2c]
setge dl
xor ebx, ebx
cmp eax, edx
mov eax, dword [ebp - 0x118]
setge bl
add eax, 0x559e03d3
xor ecx, ecx
cmp eax, 0xc1da
mov eax, dword [ebp - 0x2c]
setne cl
xor edx, edx
cmp ebx, ecx
setle dl
sub edx, eax
sub edx, dword [ebp - 0x2c]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x38], 0xd06ce125
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x30], 0
jmp 0x10042545
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0xf0], edi
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edi
jl 0x10042538
mov dword [ebp - 0x38], 0
jmp 0x10042564
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax*4 - 0xf0], 0xfff7
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], edi
jl 0x10042553
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x2c]
test eax, eax
mov eax, dword [ebp - 0x38]
setns cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x2c]
push edi
setge dl
xor ebx, ebx
cmp eax, edx
mov eax, dword [ebp - 0xf0]
setge bl
add eax, 0x559e03d3
xor ecx, ecx
cmp eax, 0xc1da
mov eax, dword [ebp - 0x2c]
setne cl
xor edx, edx
cmp ebx, ecx
lea ecx, [ebp - 0x2d0]
setle dl
sub edx, eax
sub edx, dword [ebp - 0x2c]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x2c], 7
call fcn.1000f886
xor ebx, ebx
mov dword [ebp - 4], 0x11
mov dword [ebp - 0x30], ebx
jmp 0x100425e8