Function at 0x1001bd02
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006a5a3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x2f0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x1001d23b
lea eax, [ebp + 8]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x1e4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp - 0x1f4]
movzx eax, byte [eax]
test eax, eax
je 0x1001d210
mov eax, dword [ebp - 0x1fc]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
movzx eax, word [eax + 0x14]
mov ecx, dword [ebp - 0x84]
mov ecx, dword [ecx]
lea eax, [ecx + eax + 0x18]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0x258], 0
cmp dword [ebp - 0xf8], 0
je 0x1001be12
mov dword [ebp - 0x250], 0xa42b4837
push 1
push 0x2d7b
push 0x2817
lea eax, [ebp - 0x250]
push eax
push 0x6262
push 0
push 0x2e0c
push 0x45ec
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0xf8]
push eax
push 0x1e34
call fcn.1001b48d
add esp, 0x2c
mov byte [ebp - 0x35], 0
movzx eax, byte [ebp - 0x35]
test eax, eax
je 0x1001be10
push 0xab7
push 1
push 1
push 0
push 0x1829
call fcn.1001e3dd
add esp, 0x14
jmp 0x1001be40
mov dword [ebp - 0x1b4], 0xfffffff7
push 0x7dd5
push 1
lea eax, [ebp - 0x1b4]
push eax
push 0
push 0x5290
push 0x5738
push 1
call fcn.1002dbe5
add esp, 0x1c
and dword [ebp - 0xa8], 0
jmp 0x1001be5f
mov eax, dword [ebp - 0xa8]
inc eax
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x20]
add eax, 0x28
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
movzx eax, word [eax + 6]
cmp dword [ebp - 0xa8], eax
jge 0x1001d20e
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x13c], 0x79da
mov dword [ebp - 0x24c], 0x100083b4
cmp dword [ebp - 0x13c], 0x79ff
jle 0x1001bf77
push 0x19a2
call dword [0x10617294]
and dword [ebp - 0xa0], 0
jmp 0x1001bec3
mov eax, dword [ebp - 0xa0]
inc eax
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0x3447
jge 0x1001bf77
and dword [ebp - 0x60], 0
jmp 0x1001bee0
mov eax, dword [ebp - 0x60]
inc eax
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0x51c4
jge 0x1001bf72
and dword [ebp - 0x90], 0
jmp 0x1001bf03
mov eax, dword [ebp - 0x90]
inc eax
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0x110b
jge 0x1001bf6d
and dword [ebp - 0xa4], 0
jmp 0x1001bf25
mov eax, dword [ebp - 0xa4]
inc eax
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0x42ae
jge 0x1001bf6b
mov eax, dword [ebp - 0x90]
and eax, dword [ebp - 0xa4]
xor eax, dword [ebp - 0x60]
or eax, dword [ebp - 0xa0]
cdq
mov dword [ebp - 0x218], eax
mov dword [ebp - 0x214], edx
push dword [ebp - 0x214]
push dword [ebp - 0x218]
mov ecx, 0x10614338
call fcn.100332e2
jmp 0x1001bf18
jmp 0x1001bef6
jmp 0x1001bed9
jmp 0x1001beb6
mov dword [ebp - 0x34], 0
jmp 0x1001bf87
mov eax, dword [ebp - 0x34]
dec eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0xffffffe4
jle 0x1001c315
mov dword [ebp - 0x1c], 0x9ef72d4e
mov dword [ebp - 0xb0], 0xffffffff
mov dword [ebp - 0xdc], 1
mov dword [ebp - 0x68], 0
jmp 0x1001bfbc
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x68], 2
jge 0x1001bfd2
mov eax, dword [ebp - 0x68]
mov dword [ebp + eax*4 - 0xc8], 0
jmp 0x1001bfb5
mov dword [ebp - 0x1c], 1
jmp 0x1001bfe2
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jl 0x1001c305
mov dword [ebp - 0x3c], 0x81dda8db
mov dword [ebp - 0x1d0], 0xa781b5f7
mov eax, 0x121a
test eax, eax
je 0x1001c2bc
push 0xfffffffffffffff6
pop eax
test eax, eax
je 0x1001c082
xor eax, eax
inc eax
je 0x1001c035
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0xc8], 0
je 0x1001c035
cmp dword [ebp - 0x1c], 0
je 0x1001c035
mov dword [ebp - 0x18c], 1
jmp 0x1001c03c
and dword [ebp - 0x18c], 0
mov eax, dword [ebp - 0x18c]
sub eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x1c]
jge 0x1001c056
mov dword [ebp - 0x1c0], 1
jmp 0x1001c05d
and dword [ebp - 0x1c0], 0
push 4
pop eax
shl eax, 0
mov eax, dword [ebp + eax - 0xc8]
mov dword [ebp - 0x28c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0xc8]
add eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x1c]
jle 0x1001c098
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0xc8], 0
jne 0x1001c098
and dword [ebp - 0x200], 0
jmp 0x1001c0a2
mov dword [ebp - 0x200], 1
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0xc8]
mov dword [ebp - 0x2a4], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xb0]
cmp ecx, dword [ebp + eax*4 - 0xc8]
jge 0x1001c0d9
mov dword [ebp - 0x198], 1
jmp 0x1001c0e0
and dword [ebp - 0x198], 0
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x198]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xb0]
push 8
pop eax
test eax, eax
je 0x1001c2bc
mov byte [ebp - 0x3d], 0
movzx eax, byte [ebp - 0x3d]
test eax, eax
je 0x1001c124
push 0
push 0x1c87
push 0
push 0x452f
push 0x660d
call fcn.10026b2a
add esp, 0x14
mov dword [ebp - 0xd8], 0x7d4b
mov dword [ebp - 0x204], 0x100083f0
cmp dword [ebp - 0xd8], 0x80c8
jle 0x1001c240
push 0
push 0x1e7c
push 0
push 0xa31
push 0x1255
push 0
push 0x228c
call dword [0x10617190]
and dword [ebp - 0x54], 0
jmp 0x1001c175
mov eax, dword [ebp - 0x54]
inc eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0x498d
jge 0x1001c240
and dword [ebp - 0x70], 0
jmp 0x1001c18f
mov eax, dword [ebp - 0x70]
inc eax
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0xa08
jge 0x1001c23b
and dword [ebp - 0x98], 0
jmp 0x1001c1b2
mov eax, dword [ebp - 0x98]
inc eax
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0x67a0
jge 0x1001c236
and dword [ebp - 0x78], 0
jmp 0x1001c1cb
mov eax, dword [ebp - 0x78]
inc eax
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0x9ef
jge 0x1001c231
mov eax, dword [ebp - 0x54]
cdq
idiv dword [ebp - 0x70]
add edx, dword [ebp - 0x98]
or edx, dword [ebp - 0x78]
mov eax, edx
cdq
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], edx
push dword [ebp - 0x220]
push dword [ebp - 0x224]
lea ecx, [ebp - 0x2e8]
call fcn.1000d1b0
pop ecx
pop ecx
mov dword [ebp - 0x1c8], eax
mov ecx, dword [ebp - 0x1c8]
call fcn.100332c2
push eax
call fcn.10054ad6
pop ecx
lea ecx, [ebp - 0x2e8]
call fcn.100332b8
jmp 0x1001c1c4
jmp 0x1001c1a5
jmp 0x1001c188
jmp 0x1001c16e
mov byte [ebp - 0x45], 0
and dword [ebp - 4], 0
cmp dword [ebp - 0xd8], 0x7c39
jge 0x1001c260
push dword [ebp - 0x204]
call fcn.10054ad6
pop ecx
jmp 0x1001c27c
or dword [ebp - 4], 0xffffffff
jmp 0x1001c286
movzx eax, byte [ebp - 0x45]
test eax, eax
je 0x1001c2ba
push 0x2692
push 0x731b
push 0x7ffe
push 0x5224
push 0x5acc
push 1
push 0x3221
push 0
push 1
call fcn.1001d87b
add esp, 0x24
jmp 0x1001c2e2
mov dword [ebp - 0x3c], 0
jmp 0x1001c2cc
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 2
jge 0x1001c2e2
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax*4 - 0xc8], 0x214f1636
jmp 0x1001c2c5
push 1
lea eax, [ebp - 0xdc]
push eax
push 0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x1d0]
push eax
call fcn.10026b2a
add esp, 0x14
jmp 0x1001bfdb
cmp dword [ebp - 0xdc], 0
je 0x1001c310
jmp 0x1001c315
jmp 0x1001bf80
mov dword [ebp - 4], 2
cmp dword [ebp - 0x13c], 0x77a3
jge 0x1001c338
mov edx, dword [ebp - 0x24c]
mov ecx, 0x10614338
call fcn.10034d8c
jmp 0x1001c354
or dword [ebp - 4], 0xffffffff
jmp 0x1001c35e
mov dword [ebp - 0x16c], 0x3afb
mov dword [ebp - 0x21c], 0x100084a0
cmp dword [ebp - 0x16c], 0x3e0b
jle 0x1001c413
and dword [ebp - 0x8c], 0
jmp 0x1001c398
mov eax, dword [ebp - 0x8c]
inc eax
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0x6a46
jge 0x1001c413
and dword [ebp - 0x80], 0
jmp 0x1001c3b1
mov eax, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0x3ff4
jge 0x1001c40e
mov eax, dword [ebp - 0x8c]
xor eax, dword [ebp - 0x80]
cdq
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], edx
push dword [ebp - 0x22c]
push dword [ebp - 0x230]
lea ecx, [ebp - 0x300]
call fcn.1000d1b0
pop ecx
pop ecx
mov dword [ebp - 0x1d8], eax
mov ecx, dword [ebp - 0x1d8]
call fcn.100332c2
push eax
call fcn.10054ad6
pop ecx
lea ecx, [ebp - 0x300]
call fcn.100332b8
jmp 0x1001c3aa
jmp 0x1001c38b
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x24]
and eax, 0x20000000
je 0x1001c42c
mov dword [ebp - 0xe4], 1
jmp 0x1001c433
and dword [ebp - 0xe4], 0
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 4], 4
cmp dword [ebp - 0x16c], 0x373f
jge 0x1001c45e
push dword [ebp - 0x21c]
call fcn.10054ad6
pop ecx
jmp 0x1001c47a
or dword [ebp - 4], 0xffffffff
jmp 0x1001c484
mov dword [ebp - 0x44], 0x5a136951
mov dword [ebp - 0x104], 4
mov dword [ebp - 0x184], 0x779a7b44
push 2
lea ecx, [ebp - 0x270]
call fcn.100333f7
mov dword [ebp - 4], 6
mov dword [ebp - 0x28], 0
jmp 0x1001c4c3
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 2
jge 0x1001c4df
push dword [ebp - 0x28]
lea ecx, [ebp - 0x270]
call fcn.10033495
mov dword [eax], 0x20f2d627
jmp 0x1001c4bc
mov dword [ebp - 0x28], 0
jmp 0x1001c4ef
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 2
jge 0x1001c505
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x27c], 0x869b7d6b
jmp 0x1001c4e8
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x274], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x2b0], eax
cmp dword [ebp - 0x44], 0xbf0ddd9c
jb 0x1001c52c
mov dword [ebp - 0xec], 1
jmp 0x1001c533
and dword [ebp - 0xec], 0
imul eax, dword [ebp - 0xec], 0xffff
cmp eax, dword [ebp - 0x44]
je 0x1001c54e
mov dword [ebp - 0x144], 1
jmp 0x1001c555
and dword [ebp - 0x144], 0
mov eax, dword [ebp - 0x104]
cmp dword [ebp - 0x144], eax
je 0x1001c56f
mov dword [ebp - 0xf4], 1
jmp 0x1001c576
and dword [ebp - 0xf4], 0
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x184], eax
cmp dword [ebp - 0x184], 0xcee6
jne 0x1001c59a
mov dword [ebp - 0xfc], 1
jmp 0x1001c5a1
and dword [ebp - 0xfc], 0
cmp dword [ebp - 0xfc], 0xfffffff8
jle 0x1001c5bf
mov eax, 0x299e885d
test eax, eax
je 0x1001c5bf
mov dword [ebp - 0x14c], 1
jmp 0x1001c5c6
and dword [ebp - 0x14c], 0
mov eax, dword [ebp - 0x14c]
sub eax, dword [ebp - 0x104]
mov dword [ebp - 0xc0], 1
jmp 0x1001c5e5
push 0
lea ecx, [ebp - 0x270]
call fcn.10033495
mov ecx, dword [ebp - 0xc0]
mov dword [eax], ecx
cmp dword [ebp - 0xc0], 0
je 0x1001c618
mov eax, 0x629c
test eax, eax
je 0x1001c618
mov dword [ebp - 0x174], 1
jmp 0x1001c61f
and dword [ebp - 0x174], 0
mov eax, dword [ebp - 0x174]
dec eax
dec eax
mov ecx, dword [ebp - 0x44]
add ecx, eax
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x44]
push 4
pop ecx
shl ecx, 0
mov dword [ebp + ecx - 0x27c], eax
mov byte [ebp - 0x46], 0
movzx eax, byte [ebp - 0x46]
test eax, eax
je 0x1001c679
push 0x6c
push 1
push 1
push 0x688f
push 0xa2
push 1
push 0x7338
push 0xaea
push 0x687b
push 0x1ccf
call fcn.1000f239
add esp, 0x28
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x270]
call fcn.10033479
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x24]
and eax, 0x40000000
je 0x1001c6a1
mov dword [ebp - 0x10c], 1
jmp 0x1001c6a8
and dword [ebp - 0x10c], 0
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x154], 0x6b34
mov dword [ebp - 0x1e0], 0x10008500
cmp dword [ebp - 0x154], 0x6d39
jle 0x1001c7a4
and dword [ebp - 0x9c], 0
jmp 0x1001c6ee
mov eax, dword [ebp - 0x9c]
inc eax
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0x10bc
jge 0x1001c7a4
and dword [ebp - 0x58], 0
jmp 0x1001c70b
mov eax, dword [ebp - 0x58]
inc eax
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0x5a11
jge 0x1001c79f
and dword [ebp - 0x94], 0
jmp 0x1001c72e
mov eax, dword [ebp - 0x94]
inc eax
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0x2a84
jge 0x1001c79a
and dword [ebp - 0x88], 0
jmp 0x1001c750
mov eax, dword [ebp - 0x88]
inc eax
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0x3d08
jge 0x1001c798
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x9c]
sub ecx, dword [ebp - 0x58]
or eax, ecx
cdq
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x238], edx
push dword [ebp - 0x238]
push dword [ebp - 0x23c]
mov ecx, 0x10614338
call fcn.100332e2
jmp 0x1001c743
jmp 0x1001c721
jmp 0x1001c704
jmp 0x1001c6e1
push 3
lea ecx, [ebp - 0x1b0]
call fcn.100333f7
mov dword [ebp - 4], 7
mov byte [ebp - 4], 8
cmp dword [ebp - 0x154], 0x6759
jge 0x1001c7d8
mov edx, dword [ebp - 0x1e0]
mov ecx, 0x10614338
call fcn.10034d8c
jmp 0x1001c7f4
mov dword [ebp - 4], 7
jmp 0x1001c804
push 1
lea ecx, [ebp - 0x210]
call fcn.100333f7
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x1e8], 0x1914cc5c
lea eax, [ebp - 0x1b0]
push eax
push 0
lea eax, [ebp - 0x14]
push eax
call fcn.1001e3c3
add esp, 0xc
mov dword [ebp - 0x14], 0
jmp 0x1001c844
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x1001c85a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x2c0], 0xfffffffa
jmp 0x1001c83d
mov dword [ebp - 0x14], 0
jmp 0x1001c86a
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 1
jge 0x1001c883
push dword [ebp - 0x14]
lea ecx, [ebp - 0x210]
call fcn.10033495
and dword [eax], 0
jmp 0x1001c863
mov dword [ebp - 0x14], 0
jmp 0x1001c893
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 1
jge 0x1001c8a9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x240], 8
jmp 0x1001c88c
push 2
lea ecx, [ebp - 0x1b0]
call fcn.10033495
and dword [eax], 0
jmp 0x1001c8df
push 2
lea ecx, [ebp - 0x1b0]
call fcn.10033495
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x114]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 0x114]
mov dword [ecx], eax
push 2
lea ecx, [ebp - 0x1b0]
call fcn.10033495
cmp dword [eax], 0x14
jne 0x1001caa4
mov dword [ebp - 0x5c], 0x80ca9f8d
push 4
pop eax
imul eax, eax, 3
cmp dword [ebp + eax - 0x2c0], 0xfffffffc
jbe 0x1001c918
mov dword [ebp - 0x164], 1
jmp 0x1001c91f
and dword [ebp - 0x164], 0
push 0
lea ecx, [ebp - 0x1b0]
call fcn.10033495
cmp dword [eax], 7
je 0x1001c93d
mov dword [ebp - 0x194], 1
jmp 0x1001c944
and dword [ebp - 0x194], 0
cmp dword [ebp - 0x194], 0x4b7c7008
jge 0x1001c95c
mov dword [ebp - 0x11c], 1
jmp 0x1001c963
and dword [ebp - 0x11c], 0
mov eax, dword [ebp - 0x11c]
sub eax, dword [ebp - 0x5c]
cmp eax, 0x8787
jg 0x1001c97f
mov dword [ebp - 0x15c], 1
jmp 0x1001c986
and dword [ebp - 0x15c], 0
push 0
lea ecx, [ebp - 0x210]
call fcn.10033495
mov ecx, dword [ebp - 0x15c]
cmp ecx, dword [eax]
jne 0x1001c9a9
mov dword [ebp - 0x124], 1
jmp 0x1001c9b0
and dword [ebp - 0x124], 0
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0x124], eax
jg 0x1001c9c7
mov dword [ebp - 0x17c], 1
jmp 0x1001c9ce
and dword [ebp - 0x17c], 0
push 0
lea ecx, [ebp - 0x210]
call fcn.10033495
mov ecx, dword [ebp - 0x17c]
cmp ecx, dword [eax]
jle 0x1001c9f1
mov dword [ebp - 0x12c], 1
jmp 0x1001c9f8
and dword [ebp - 0x12c], 0
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x12c]
jle 0x1001ca0f
mov dword [ebp - 0x134], 1
jmp 0x1001ca16
and dword [ebp - 0x134], 0
mov eax, dword [ebp - 0x164]
cmp eax, dword [ebp - 0x134]
jl 0x1001ca30
mov dword [ebp - 0xd4], 1
jmp 0x1001ca37
and dword [ebp - 0xd4], 0
push 0
lea ecx, [ebp - 0x210]
call fcn.10033495
mov ecx, dword [ebp - 0xd4]
cmp ecx, dword [eax]
jle 0x1001ca5a
mov dword [ebp - 0xb8], 1
jmp 0x1001ca61
and dword [ebp - 0xb8], 0
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0xb8]
mov dword [ebp + eax - 0x240], ecx
mov eax, dword [ebp - 0xb8]
inc eax
cmp eax, dword [ebp - 0x5c]
jne 0x1001ca8c
mov dword [ebp - 0xd0], 1
jmp 0x1001ca93
and dword [ebp - 0xd0], 0
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x1e8], eax
jmp 0x1001c8bb
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x210]
call fcn.10033479
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1b0]
call fcn.10033479
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x24]
and eax, 0x80000000
je 0x1001cadb
mov dword [ebp - 0xe0], 1
jmp 0x1001cae2
and dword [ebp - 0xe0], 0
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1f0], 0x8c176b0f
mov dword [ebp - 0x294], 0x1f94964a
mov dword [ebp - 0x2ac], 0xffffffff
mov dword [ebp - 0x140], 0x4822b16
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0xac], 0x7b4bc66
mov dword [ebp - 0xbc], 0x7bededb5
mov dword [ebp - 0x254], 0xfffffff9
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x4c], 0xffffffff
push 1
lea ecx, [ebp - 0x1a4]
call fcn.100333f7
mov dword [ebp - 4], 0xb
mov dword [ebp - 0x24], 0
jmp 0x1001cb70
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jge 0x1001cb86
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xb4], 0xffffffff
jmp 0x1001cb69
mov dword [ebp - 0x24], 0
jmp 0x1001cb96
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jge 0x1001cbaf
push dword [ebp - 0x24]
lea ecx, [ebp - 0x1a4]
call fcn.10033495
or dword [eax], 0xffffffff
jmp 0x1001cb8f
lea eax, [ebp - 0x110]
push eax
push 0
call fcn.1001f09e
pop ecx
pop ecx
mov dword [ebp - 0xe8], 0x128e
mov dword [ebp - 0x228], 0x10008530
cmp dword [ebp - 0xe8], 0x1309
jle 0x1001cc67
push 0
push 0
push 0
push 0
call dword [0x10617188]
and dword [ebp - 0x64], 0
jmp 0x1001cbfe
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0x475a
jge 0x1001cc67
and dword [ebp - 0x6c], 0
jmp 0x1001cc14
mov eax, dword [ebp - 0x6c]
inc eax
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x6c], 0x11cd
jge 0x1001cc65
and dword [ebp - 0x74], 0
jmp 0x1001cc2a
mov eax, dword [ebp - 0x74]
inc eax
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 0xf0d
jge 0x1001cc63
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x6c]
shl eax, cl
xor eax, dword [ebp - 0x74]
cdq
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x244], edx
push dword [ebp - 0x244]
push dword [ebp - 0x248]
mov ecx, 0x10614338
call fcn.100332e2
jmp 0x1001cc23
jmp 0x1001cc0d
jmp 0x1001cbf7
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0xe8], 0x1218
jge 0x1001cc87
mov edx, dword [ebp - 0x228]
mov ecx, 0x10614338
call fcn.10034d8c
jmp 0x1001cca3
mov dword [ebp - 4], 0xb
jmp 0x1001ccb3
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x2c], eax
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0xb4]
mov dword [ebp - 0x29c], eax
mov eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x280], eax
push 0
lea ecx, [ebp - 0x1a4]
call fcn.10033495
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0xb4], 0xfff9
jae 0x1001cd07
mov dword [ebp - 0xf0], 1
jmp 0x1001cd0e
and dword [ebp - 0xf0], 0
cmp dword [ebp - 0xf0], 3
jne 0x1001cd26
cmp dword [ebp - 0x4c], 0
jne 0x1001cd26
and dword [ebp - 0xcc], 0
jmp 0x1001cd30
mov dword [ebp - 0xcc], 1
mov esi, dword [ebp - 0xcc]
shl esi, 1
push 0
lea ecx, [ebp - 0x1a4]
call fcn.10033495
cmp esi, dword [eax]
jg 0x1001cd5b
cmp dword [ebp - 0x2c], 0
je 0x1001cd5b
mov dword [ebp - 0x100], 1
jmp 0x1001cd62
and dword [ebp - 0x100], 0
mov esi, dword [ebp - 0x100]
neg esi
push 0
lea ecx, [ebp - 0x1a4]
call fcn.10033495
cmp esi, dword [eax]
jge 0x1001cd8d
cmp dword [ebp - 0xac], 0
jne 0x1001cd8d
and dword [ebp - 0x108], 0
jmp 0x1001cd97
mov dword [ebp - 0x108], 1
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0x110]
jl 0x1001cdbd
mov dword [ebp - 0x118], 1
jmp 0x1001cdc4
and dword [ebp - 0x118], 0
mov eax, dword [ebp - 0xac]
cmp dword [ebp - 0x118], eax
je 0x1001cdde
mov dword [ebp - 0x120], 1
jmp 0x1001cde5
and dword [ebp - 0x120], 0
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x120]
jle 0x1001cdfc
mov dword [ebp - 0x128], 1
jmp 0x1001ce03
and dword [ebp - 0x128], 0
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x4c]
jne 0x1001ce17
mov dword [ebp - 0x130], 1
jmp 0x1001ce1e
and dword [ebp - 0x130], 0
mov eax, dword [ebp - 0x130]
dec eax
je 0x1001ce3c
cmp dword [ebp - 0xac], 0
je 0x1001ce3c
mov dword [ebp - 0x138], 1
jmp 0x1001ce43
and dword [ebp - 0x138], 0
mov eax, dword [ebp - 0x254]
cmp dword [ebp - 0x138], eax
jl 0x1001ce5d
mov dword [ebp - 0x1f8], 1
jmp 0x1001ce64
and dword [ebp - 0x1f8], 0
push 0
lea ecx, [ebp - 0x1a4]
call fcn.10033495
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x140]
cmp ecx, dword [ebp + eax - 0xb4]
jg 0x1001cf1e
mov dword [ebp - 0x234], 0x2b293353
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x1b8], 0xffffffff
cmp dword [ebp - 0xbc], 1
jge 0x1001cebd
mov dword [ebp - 0x148], 1
jmp 0x1001cec4
and dword [ebp - 0x148], 0
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x148]
jne 0x1001cee1
mov eax, 0xbbb30732
test eax, eax
jne 0x1001cee1
and dword [ebp - 0x150], 0
jmp 0x1001ceeb
mov dword [ebp - 0x150], 1
mov eax, dword [ebp - 0x4c]
imul eax, dword [ebp - 0x150]
cmp eax, dword [ebp - 0x234]
jle 0x1001cf09
mov dword [ebp - 0x158], 1
jmp 0x1001cf10
and dword [ebp - 0x158], 0
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x1b8], eax
jmp 0x1001cf6c
mov dword [ebp - 0x2c], 0
jmp 0x1001cf2e
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x1a
jge 0x1001cf6c
mov dword [ebp - 0x7c], 0
jmp 0x1001cf44
mov eax, dword [ebp - 0x7c]
inc eax
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 4
jge 0x1001cf5a
mov eax, dword [ebp - 0x7c]
mov dword [ebp + eax*4 - 0x2d0], 3
jmp 0x1001cf3d
mov eax, dword [ebp - 0x2c]
push 4
pop ecx
imul ecx, ecx, 3
mov dword [ebp + ecx - 0x2d0], eax
jmp 0x1001cf27
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1a4]
call fcn.10033479
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x24]
and eax, 0x2000000
je 0x1001d14e
push 0x4000
mov eax, dword [ebp - 0x20]
push dword [eax + 0x10]
mov eax, dword [ebp - 0x20]
push dword [eax + 8]
push 0x3929
push 0x433d
call fcn.1004982b
pop ecx
pop ecx
call eax
mov dword [ebp - 0x18], 0x743d
mov dword [ebp - 0x1bc], 6
push 4
lea ecx, [ebp - 0x264]
call fcn.100333f7
mov dword [ebp - 4], 0xe
lea eax, [ebp - 0x264]
push eax
push 0
lea eax, [ebp - 0x290]
push eax
push 0x73ad
call fcn.1001e4cf
add esp, 0x10
cmp dword [ebp - 0x18], 0
jne 0x1001d072
cmp dword [ebp - 0x18], 0
jne 0x1001d072
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x298], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2a0], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2a8], eax
cmp dword [ebp - 0x18], 0x7b6fe6d3
jne 0x1001d038
cmp dword [ebp - 0x18], 0
jne 0x1001d038
push 3
pop eax
test eax, eax
jne 0x1001d038
and dword [ebp - 0x160], 0
jmp 0x1001d042
mov dword [ebp - 0x160], 1
cmp dword [ebp - 0x160], 0xfffffff8
je 0x1001d057
mov dword [ebp - 0x168], 1
jmp 0x1001d05e
and dword [ebp - 0x168], 0
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x168]
jle 0x1001d072
and dword [ebp - 0x170], 0
jmp 0x1001d07c
mov dword [ebp - 0x170], 1
cmp dword [ebp - 0x170], 6
jb 0x1001d091
mov dword [ebp - 0x178], 1
jmp 0x1001d098
and dword [ebp - 0x178], 0
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x178]
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x18], 0
jmp 0x1001d0b7
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jg 0x1001d13a
mov dword [ebp - 0x50], 0xffffffff
push dword [ebp - 0x18]
lea ecx, [ebp - 0x264]
call fcn.10033495
mov eax, dword [eax]
neg eax
mov dword [ebp - 0x180], eax
push dword [ebp - 0x18]
lea ecx, [ebp - 0x264]
call fcn.10033495
mov ecx, dword [ebp - 0x180]
mov dword [eax], ecx
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x50], 0
jmp 0x1001d10b
mov eax, dword [ebp - 0x50]
dec eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0xffffffe3
jle 0x1001d135
mov byte [ebp - 0x2d], 0
movzx eax, byte [ebp - 0x2d]
test eax, eax
je 0x1001d133
push 0x2b39
push 1
push 1
push 0x3c23
call fcn.1001b29a
add esp, 0x10
jmp 0x1001d104
jmp 0x1001d0b0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x264]
call fcn.10033479
jmp 0x1001be49
push 0x5ae
push 1
push 1
call fcn.1001b336
add esp, 0xc
push 0x61e8
lea eax, [ebp - 0x1c4]
push eax
lea eax, [ebp - 0x1dc]
push eax
push 0
lea eax, [ebp - 0x20]
push eax
push 0x1c45
lea eax, [ebp - 0x1cc]
push eax
lea eax, [ebp - 0x1d4]
push eax
call fcn.100259cc
add esp, 0x20
push 0x1105
push 0x6c0d
lea eax, [ebp - 0x20]
push eax
push 0x7cfa
push 0x107f
push 0x16b9
lea eax, [ebp - 0x84]
push eax
push 1
push 1
push 0x57f3
lea eax, [ebp - 0x188]
push eax
push 0x77fe
call fcn.1001b81f
add esp, 0x30
cmp dword [ebp - 0x188], 0
jbe 0x1001d209
lea eax, [ebp - 0x284]
push eax
push dword [ebp - 0x1dc]
push dword [ebp - 0x188]
mov eax, dword [ebp - 0x20]
push dword [eax + 8]
push 0x3929
push 0x35cd
call fcn.1004982b
pop ecx
pop ecx
call eax
jmp 0x1001be49
jmp 0x1001d239
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp - 0x1ec]
mov dword [ebp - 0x190], eax
mov eax, dword [ebp - 0x190]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 0x190]
mov dword [ecx], eax
jmp 0x1001d243
push 1
call fcn.1000d8b4
pop ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret