Function at 0x10021254
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006aeed
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x48c
push esi
and dword [ebp - 0x1a4], 0
mov dword [ebp - 0x2c], 9
mov dword [ebp - 0x130], 0xb6feb9e9
mov dword [ebp - 0x1d4], 0xfff8
mov dword [ebp - 0x64], 0
jmp 0x100212a5
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 3
jge 0x100212bb
mov eax, dword [ebp - 0x64]
mov dword [ebp + eax*4 - 0x270], 1
jmp 0x1002129e
mov dword [ebp - 0x2c], 0x18
jmp 0x100212cb
mov eax, dword [ebp - 0x2c]
dec eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x18
jl 0x10021542
mov dword [ebp - 0x1c0], 6
mov dword [ebp - 0x20c], 0x1424
cmp dword [ebp - 0x20c], 0xaba
jge 0x1002148d
xor eax, eax
inc eax
je 0x1002148d
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x1000c2bc
call fcn.10050cbb
add esp, 0xc
cmp dword [ebp - 0x24], 0
jne 0x1002132e
cmp dword [ebp - 0x134], 0
jne 0x1002132e
jmp 0x1002148d
and dword [ebp - 0x58], 0
jmp 0x1002133b
mov eax, dword [ebp - 0x58]
inc eax
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x24]
jge 0x1002135d
imul eax, dword [ebp - 0x58], 0x12
lea eax, [ebp + eax - 0x498]
push eax
push 0x1000c544
call fcn.10050cbb
pop ecx
pop ecx
jmp 0x10021334
and dword [ebp - 0x108], 0
jmp 0x10021373
mov eax, dword [ebp - 0x108]
inc eax
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x108]
cmp eax, dword [ebp - 0x134]
jge 0x1002147d
lea eax, [ebp - 0x34]
push eax
push 0x1000c288
call fcn.10050cbb
pop ecx
pop ecx
cmp dword [ebp - 0x24], 1
jne 0x100213b7
push 0x12
pop eax
imul eax, eax, 0
lea eax, [ebp + eax - 0x498]
push eax
push 0x1000c548
call fcn.10050eef
pop ecx
pop ecx
jmp 0x10021366
mov dword [ebp - 0x6c], 1
mov dword [ebp - 0x30], 1
jmp 0x100213ce
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0x6c]
imul eax, dword [ebp - 0x24]
cmp dword [ebp - 0x34], eax
jle 0x100213f3
mov eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0x6c]
imul eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
sub ecx, eax
mov dword [ebp - 0x34], ecx
jmp 0x10021469
mov eax, dword [ebp - 0x34]
dec eax
cdq
idiv dword [ebp - 0x30]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x34]
dec eax
cdq
idiv dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x30]
dec eax
mov dword [ebp - 0x110], eax
jmp 0x10021425
mov eax, dword [ebp - 0x110]
dec eax
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x110]
cmp eax, dword [ebp - 0x34]
jne 0x10021455
mov eax, dword [ebp - 0x114]
cdq
idiv dword [ebp - 0x24]
imul eax, edx, 0x12
lea eax, [ebp + eax - 0x498]
push eax
push 0x1000c548
call fcn.10050eef
pop ecx
pop ecx
jmp 0x10021467
mov eax, dword [ebp - 0x114]
cdq
idiv dword [ebp - 0x24]
mov dword [ebp - 0x114], eax
jmp 0x10021418
jmp 0x10021478
mov eax, dword [ebp - 0x6c]
imul eax, dword [ebp - 0x24]
mov dword [ebp - 0x6c], eax
jmp 0x100213c7
jmp 0x10021366
push 0x1000c54c
call fcn.10050eef
pop ecx
jmp 0x100212f9
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x284], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x290], eax
cmp dword [ebp - 0x1c0], 0xcf33
jge 0x100214b7
mov dword [ebp - 0x178], 1
jmp 0x100214be
and dword [ebp - 0x178], 0
mov eax, dword [ebp - 0x1c0]
cmp dword [ebp - 0x178], eax
jle 0x100214d8
mov dword [ebp - 0x1ac], 1
jmp 0x100214df
and dword [ebp - 0x1ac], 0
mov eax, dword [ebp - 0x2c]
imul eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x130], eax
jle 0x10021506
mov dword [ebp - 0x204], 1
jmp 0x1002150d
and dword [ebp - 0x204], 0
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x270]
mov dword [ebp - 0x258], eax
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x270]
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x1d4], 1
jmp 0x100212c4
mov byte [ebp - 0x104], 0x10
mov byte [ebp - 0x103], 0x4c
mov byte [ebp - 0x102], 0x11
mov byte [ebp - 0x101], 3
mov byte [ebp - 0x100], 0x19
mov byte [ebp - 0xff], 8
mov byte [ebp - 0xfe], 8
mov byte [ebp - 0xfd], 0x13
mov byte [ebp - 0xfc], 5
mov byte [ebp - 0xfb], 0xf
mov byte [ebp - 0xfa], 0x17
mov byte [ebp - 0xf9], 0x1e
mov byte [ebp - 0xf8], 0xc
mov byte [ebp - 0xf7], 0x15
mov byte [ebp - 0xf6], 0x16
mov byte [ebp - 0xf5], 0x1a
mov byte [ebp - 0xf4], 9
mov byte [ebp - 0xf3], 0x1d
mov byte [ebp - 0xf2], 0xa
mov byte [ebp - 0xf1], 1
mov byte [ebp - 0xf0], 0
mov byte [ebp - 0xef], 0xa
mov byte [ebp - 0xee], 0xb
mov byte [ebp - 0xed], 0xd
mov byte [ebp - 0xec], 0x12
mov byte [ebp - 0xeb], 0x1f
mov byte [ebp - 0xea], 0x18
mov byte [ebp - 0xe9], 0xa
mov byte [ebp - 0xe8], 1
mov byte [ebp - 0xe7], 0x1b
mov byte [ebp - 0xe6], 4
mov byte [ebp - 0xe5], 7
mov byte [ebp - 0xe4], 0x13
mov byte [ebp - 0xe3], 0x11
mov byte [ebp - 0xe2], 0x5a
mov byte [ebp - 0xe1], 0x7d
mov byte [ebp - 0xe0], 0x1e
mov byte [ebp - 0xdf], 0x34
mov byte [ebp - 0xde], 0x78
mov byte [ebp - 0xdd], 0x17
mov byte [ebp - 0xdc], 0xd3
mov byte [ebp - 0xdb], 0x81
mov byte [ebp - 0xda], 0x80
mov byte [ebp - 0xd9], 0x8c
mov byte [ebp - 0xd8], 0x23
mov byte [ebp - 0xd7], 0xdf
mov byte [ebp - 0xd6], 0xd6
mov byte [ebp - 0xd5], 0x29
mov byte [ebp - 0xd4], 0x94
mov byte [ebp - 0xd3], 0x4e
mov byte [ebp - 0xd2], 0x83
mov byte [ebp - 0xd1], 0x84
mov byte [ebp - 0xd0], 8
mov byte [ebp - 0xcf], 0xed
mov byte [ebp - 0xce], 0x14
mov byte [ebp - 0xcd], 0x60
mov byte [ebp - 0xcc], 0x35
mov byte [ebp - 0xcb], 0xdf
mov byte [ebp - 0xca], 0x13
mov byte [ebp - 0xc9], 0x91
mov byte [ebp - 0xc8], 3
mov byte [ebp - 0xc7], 0x87
mov byte [ebp - 0xc6], 0x51
mov byte [ebp - 0xc5], 0xf3
mov byte [ebp - 0xc4], 0x32
mov byte [ebp - 0xc3], 0xd8
mov byte [ebp - 0xc2], 0x12
mov byte [ebp - 0xc1], 0xb7
mov byte [ebp - 0xc0], 0x14
mov byte [ebp - 0xbf], 0xb
mov byte [ebp - 0xbe], 0x6c
mov byte [ebp - 0xbd], 0x7f
mov byte [ebp - 0xbc], 0xb0
mov byte [ebp - 0xbb], 0xe8
mov byte [ebp - 0xba], 5
mov byte [ebp - 0xb9], 0x9c
mov byte [ebp - 0xb8], 0x29
mov byte [ebp - 0xb7], 0x10
mov byte [ebp - 0xb6], 0xd5
mov byte [ebp - 0xb5], 0xec
mov byte [ebp - 0xb4], 0xaf
mov byte [ebp - 0xb3], 0x45
mov byte [ebp - 0xb2], 0x3a
mov byte [ebp - 0xb1], 0x9b
mov byte [ebp - 0xb0], 0x5b
mov byte [ebp - 0xaf], 0xcd
mov byte [ebp - 0xae], 0x7b
mov byte [ebp - 0xad], 0xbe
mov byte [ebp - 0xac], 0x48
mov byte [ebp - 0xab], 0x68
mov byte [ebp - 0xaa], 0x79
mov byte [ebp - 0xa9], 0xb1
mov byte [ebp - 0xa8], 0x2e
mov byte [ebp - 0xa7], 0xc2
mov byte [ebp - 0xa6], 0xc8
mov byte [ebp - 0xa5], 0x13
mov byte [ebp - 0xa4], 0x77
mov byte [ebp - 0xa3], 0xa6
mov byte [ebp - 0xa2], 0x4a
mov byte [ebp - 0xa1], 0x37
mov byte [ebp - 0xa0], 0xea
mov byte [ebp - 0x9f], 0xac
mov byte [ebp - 0x9e], 0xa9
mov byte [ebp - 0x9d], 0x91
mov byte [ebp - 0x9c], 3
mov byte [ebp - 0x9b], 0x98
mov byte [ebp - 0x9a], 0xbe
mov byte [ebp - 0x99], 0x62
mov byte [ebp - 0x98], 0x83
mov byte [ebp - 0x97], 0x5e
mov byte [ebp - 0x96], 0x2d
mov byte [ebp - 0x95], 0x93
mov byte [ebp - 0x94], 0x61
mov byte [ebp - 0x93], 0xc9
mov byte [ebp - 0x92], 0xde
mov byte [ebp - 0x91], 0xa7
mov byte [ebp - 0x90], 0x8d
mov byte [ebp - 0x8f], 0x56
mov byte [ebp - 0x8e], 0x26
mov byte [ebp - 0x8d], 0x27
mov byte [ebp - 0x8c], 0x3c
mov byte [ebp - 0x8b], 0xbd
mov byte [ebp - 0x8a], 0x95
mov byte [ebp - 0x89], 0xdb
mov byte [ebp - 0x88], 0x42
mov byte [ebp - 0x87], 0x15
mov byte [ebp - 0x86], 2
mov byte [ebp - 0x85], 2
mov byte [ebp - 0x84], 0x15
mov byte [ebp - 0x83], 0xd
mov byte [ebp - 0x82], 0xd
mov byte [ebp - 0x81], 0x14
mov byte [ebp - 0x80], 0x1b
mov byte [ebp - 0x7f], 0xf
mov byte [ebp - 0x7e], 5
mov byte [ebp - 0x7d], 0xe
mov byte [ebp - 0x7c], 0x1f
mov byte [ebp - 0x7b], 3
mov byte [ebp - 0x7a], 0xb
mov byte [ebp - 0x79], 6
mov byte [ebp - 0x78], 3
mov byte [ebp - 0x77], 7
mov byte [ebp - 0x76], 0xf
xor eax, eax
inc eax
shl eax, 0
movzx eax, byte [ebp + eax - 0x104]
or eax, 0x3d
xor ecx, ecx
inc ecx
shl ecx, 0
movzx ecx, byte [ebp + ecx - 0x104]
and ecx, 0x3d
sub eax, ecx
xor ecx, ecx
inc ecx
imul ecx, ecx, 0
movzx ecx, byte [ebp + ecx - 0x104]
mov byte [ebp + ecx - 0x254], al
mov dword [ebp - 0x10], 2
and dword [ebp - 0x4c], 0
jmp 0x10021958
mov eax, dword [ebp - 0x10]
inc eax
inc eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x8f
jae 0x10021a3e
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0x104]
lea eax, [eax + eax + 2]
cmp dword [ebp - 0x10], eax
jne 0x100219a2
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x104]
inc eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x104]
mov ecx, dword [ebp - 0x10]
lea eax, [ecx + eax - 1]
mov dword [ebp - 0x10], eax
jmp 0x10021950
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0x103]
mov ecx, dword [ebp - 0x10]
sub ecx, dword [ebp - 0x4c]
movzx ecx, byte [ebp + ecx - 0x106]
movsx ecx, byte [ebp + ecx - 0x254]
add eax, ecx
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [ebp + ecx - 0x103]
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp - 0x4c]
movzx edx, byte [ebp + edx - 0x106]
movsx edx, byte [ebp + edx - 0x254]
and ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [ebp + ecx - 0x103]
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp - 0x4c]
movzx edx, byte [ebp + edx - 0x106]
movsx edx, byte [ebp + edx - 0x254]
and ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [ebp + ecx - 0x104]
mov byte [ebp + ecx - 0x254], al
lea eax, [ebp - 0x4c]
push eax
push 0x4c4d
push 0x5a9b
push 0
call fcn.100225e2
add esp, 0x10
jmp 0x10021950
xor eax, eax
inc eax
imul eax, eax, 0x1a
mov byte [ebp + eax - 0x254], 0
push 2
lea ecx, [ebp - 0x1d0]
call fcn.100140c9
and dword [ebp - 4], 0
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x148], 1
lea eax, [ebp - 0x1d0]
push eax
lea eax, [ebp - 0x288]
push eax
call fcn.10020f20
pop ecx
pop ecx
mov dword [ebp - 0x18], 0
jmp 0x10021a9a
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 1
jg 0x10021b8e
mov dword [ebp - 0x40], 0xa3399244
mov dword [ebp - 0x214], 0xfffffffc
mov byte [ebp - 0x3a], 0
movzx eax, byte [ebp - 0x3a]
test eax, eax
je 0x10021ac6
call fcn.10020f65
mov dword [ebp - 0x40], 1
jmp 0x10021ad6
mov eax, dword [ebp - 0x40]
dec eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
jl 0x10021b89
mov dword [ebp - 0x1a0], 0xa13b2885
push 4
lea ecx, [ebp - 0x22c]
call fcn.100140c9
mov byte [ebp - 4], 1
mov dword [ebp - 0x60], 0
jmp 0x10021b0b
mov eax, dword [ebp - 0x60]
inc eax
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 4
jge 0x10021b27
push dword [ebp - 0x60]
lea ecx, [ebp - 0x22c]
call fcn.10014130
mov dword [eax], 6
jmp 0x10021b04
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x1d0]
push eax
lea eax, [ebp - 0x214]
push eax
call fcn.10020f86
add esp, 0x18
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x1d0]
push eax
lea eax, [ebp - 0x22c]
push eax
call fcn.1002107d
add esp, 0x14
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x22c]
call fcn.1001412b
jmp 0x10021acf
jmp 0x10021a93
cmp dword [ebp - 0x28], 0
je 0x10021bb2
push 1
lea ecx, [ebp - 0x1d0]
call fcn.10014130
cmp dword [eax], 0
je 0x10021bb2
mov dword [ebp - 0x188], 1
jmp 0x10021bb9
and dword [ebp - 0x188], 0
cmp dword [ebp - 0x28], 0x6a83cd0c
je 0x10021bce
mov dword [ebp - 0x138], 1
jmp 0x10021bd5
and dword [ebp - 0x138], 0
mov esi, dword [ebp - 0x138]
sub esi, dword [ebp - 0x28]
push 0
lea ecx, [ebp - 0x1d0]
call fcn.10014130
cmp esi, dword [eax]
je 0x10021bfb
mov dword [ebp - 0x180], 1
jmp 0x10021c02
and dword [ebp - 0x180], 0
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x180], eax
jl 0x10021c19
mov dword [ebp - 0x140], 1
jmp 0x10021c20
and dword [ebp - 0x140], 0
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x140], eax
jle 0x10021c37
mov dword [ebp - 0x1c4], 1
jmp 0x10021c3e
and dword [ebp - 0x1c4], 0
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x148], eax
cmp dword [ebp - 0x148], 0
jne 0x10021c62
cmp dword [ebp - 0x28], 0
jne 0x10021c62
and dword [ebp - 0x150], 0
jmp 0x10021c6c
mov dword [ebp - 0x150], 1
mov esi, dword [ebp - 0x18]
sub esi, dword [ebp - 0x188]
push 1
lea ecx, [ebp - 0x1d0]
call fcn.10014130
mov ecx, dword [ebp - 0x150]
sub ecx, dword [eax]
cmp esi, ecx
jle 0x10021c9d
cmp dword [ebp - 0x18], 0
jne 0x10021c9d
and dword [ebp - 0x1a8], 0
jmp 0x10021ca7
mov dword [ebp - 0x1a8], 1
mov eax, dword [ebp - 0x1a8]
sub eax, dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jne 0x10021cc1
mov dword [ebp - 0x158], 1
jmp 0x10021cc8
and dword [ebp - 0x158], 0
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x158], eax
je 0x10021cdf
mov dword [ebp - 0x190], 1
jmp 0x10021ce6
and dword [ebp - 0x190], 0
mov eax, dword [ebp - 0x190]
mov dword [ebp - 0x18], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1d0]
call fcn.1001412b
lea eax, [ebp - 0x254]
push eax
lea ecx, [ebp - 0x2c4]
call fcn.1001403f
mov dword [ebp - 4], 2
mov dword [ebp - 0x38], 0xf5540d7f
push 1
lea ecx, [ebp - 0x120]
call fcn.100140c9
mov byte [ebp - 4], 3
mov dword [ebp - 0x15c], 9
mov dword [ebp - 0x18c], 0x6158e9d2
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x25c]
push eax
call fcn.1001000c
pop ecx
pop ecx
mov dword [ebp - 0x38], 0
jmp 0x10021d68
mov eax, dword [ebp - 0x38]
dec eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0xffffffe4
je 0x1002214f
mov dword [ebp - 0x14], 0xfffffffe
mov dword [ebp - 0x1fc], 0xe56a96da
mov dword [ebp - 0x14], 0
jmp 0x10021d93
mov eax, dword [ebp - 0x14]
dec eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x1002214a
mov dword [ebp - 0x144], 0xdd8607f4
mov dword [ebp - 0x194], 0
mov dword [ebp - 0x20], 0
jmp 0x10021dc1
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 2
jge 0x10021dd7
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1b8], 4
jmp 0x10021dba
mov dword [ebp - 0x20], 0
jmp 0x10021de7
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 1
jge 0x10021dfd
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x218], 0x80dda259
jmp 0x10021de0
push dword [ebp - 0x14]
lea ecx, [ebp - 0x120]
call fcn.10014130
mov esi, eax
push dword [ebp - 0x14]
lea ecx, [ebp - 0x120]
call fcn.10014130
mov ecx, dword [esi]
cmp ecx, dword [eax]
jl 0x10021e2d
mov dword [ebp - 0x124], 1
jmp 0x10021e34
and dword [ebp - 0x124], 0
cmp dword [ebp - 0x14], 0xb444
je 0x10021e49
mov dword [ebp - 0x160], 1
jmp 0x10021e50
and dword [ebp - 0x160], 0
cmp dword [ebp - 0x160], 0xc254e7f1
je 0x10021e68
mov dword [ebp - 0x1bc], 1
jmp 0x10021e6f
and dword [ebp - 0x1bc], 0
push 4
pop eax
shl eax, 0
mov eax, dword [ebp + eax - 0x1b8]
cmp eax, dword [ebp - 0x1bc]
jg 0x10021e90
mov dword [ebp - 0x168], 1
jmp 0x10021e97
and dword [ebp - 0x168], 0
push 0
lea ecx, [ebp - 0x120]
call fcn.10014130
mov ecx, dword [ebp - 0x168]
cmp ecx, dword [eax]
jge 0x10021eba
mov dword [ebp - 0x198], 1
jmp 0x10021ec1
and dword [ebp - 0x198], 0
cmp dword [ebp - 0x198], 0x723
je 0x10021ed9
mov dword [ebp - 0x170], 1
jmp 0x10021ee0
and dword [ebp - 0x170], 0
push dword [ebp - 0x14]
lea ecx, [ebp - 0x120]
call fcn.10014130
mov ecx, dword [ebp - 0x170]
cmp ecx, dword [eax]
jle 0x10021f04
mov dword [ebp - 0x1b0], 1
jmp 0x10021f0b
and dword [ebp - 0x1b0], 0
push 4
pop eax
shl eax, 0
mov eax, dword [ebp + eax - 0x1b8]
cmp dword [ebp - 0x1b0], eax
jne 0x10021f2c
mov dword [ebp - 0x128], 1
jmp 0x10021f33
and dword [ebp - 0x128], 0
mov eax, dword [ebp - 0x144]
imul eax, dword [ebp - 0x128]
cmp eax, dword [ebp - 0x14]
je 0x10021f51
mov dword [ebp - 0x12c], 1
jmp 0x10021f58
and dword [ebp - 0x12c], 0
push 0
lea ecx, [ebp - 0x120]
call fcn.10014130
mov ecx, dword [ebp - 0x12c]
add ecx, dword [eax]
mov eax, dword [ebp - 0x124]
sub eax, ecx
sub eax, 6
jne 0x10021f8c
mov eax, 0xc09
test eax, eax
jne 0x10021f8c
and dword [ebp - 0x13c], 0
jmp 0x10021f96
mov dword [ebp - 0x13c], 1
push 4
pop eax
shl eax, 0
mov eax, dword [ebp + eax - 0x1b8]
cmp dword [ebp - 0x13c], eax
jle 0x10021fb7
mov dword [ebp - 0x14c], 1
jmp 0x10021fbe
and dword [ebp - 0x14c], 0
mov eax, dword [ebp - 0x144]
cmp dword [ebp - 0x14c], eax
jne 0x10021fd8
mov dword [ebp - 0x154], 1
jmp 0x10021fdf
and dword [ebp - 0x154], 0
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x15c], eax
cmp dword [ebp - 0x15c], 0
jne 0x10022006
mov eax, 0xc43
test eax, eax
jne 0x10022006
and dword [ebp - 0x164], 0
jmp 0x10022010
mov dword [ebp - 0x164], 1
push dword [ebp - 0x14]
lea ecx, [ebp - 0x120]
call fcn.10014130
mov ecx, dword [ebp - 0x164]
add ecx, dword [eax]
push 4
pop eax
imul eax, eax, 0
cmp ecx, dword [ebp + eax - 0x1b8]
jle 0x10022047
cmp dword [ebp - 0x38], 0
je 0x10022047
mov dword [ebp - 0x16c], 1
jmp 0x1002204e
and dword [ebp - 0x16c], 0
mov eax, dword [ebp - 0x16c]
sub eax, 8
cmp eax, 3
jge 0x10022068
mov dword [ebp - 0x10c], 1
jmp 0x1002206f
and dword [ebp - 0x10c], 0
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x10c]
mov dword [ebp + eax - 0x218], ecx
mov esi, dword [ebp - 0x38]
imul esi, dword [ebp - 0x10c]
push dword [ebp - 0x14]
lea ecx, [ebp - 0x120]
call fcn.10014130
cmp esi, dword [eax]
jl 0x100220ad
cmp dword [ebp - 0x38], 0
jne 0x100220ad
and dword [ebp - 0x174], 0
jmp 0x100220b7
mov dword [ebp - 0x174], 1
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x1fc], eax
push dword [ebp - 0x14]
lea ecx, [ebp - 0x120]
call fcn.10014130
cmp dword [eax], 0
jne 0x100220e8
cmp dword [ebp - 0x194], 0
jne 0x100220e8
and dword [ebp - 0x17c], 0
jmp 0x100220f2
mov dword [ebp - 0x17c], 1
push dword [ebp - 0x14]
lea ecx, [ebp - 0x120]
call fcn.10014130
mov eax, dword [eax]
add eax, dword [ebp - 0x17c]
push 4
pop ecx
shl ecx, 0
cmp eax, dword [ebp + ecx - 0x1b8]
jle 0x10022123
mov dword [ebp - 0x184], 1
jmp 0x1002212a
and dword [ebp - 0x184], 0
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x18c], eax
mov eax, dword [ebp - 0x18c]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x194], eax
jmp 0x10021d8c
jmp 0x10021d61
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x120]
call fcn.1001412b
and dword [ebp - 0x74], 0
jmp 0x1002216b
mov eax, dword [ebp - 0x74]
inc eax
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 0x1b
jae 0x1002217e
mov eax, dword [ebp - 0x74]
mov byte [ebp + eax - 0x254], 0
jmp 0x10022164
push 0x1000c1f5
lea ecx, [ebp - 0x2ac]
call fcn.1001403f
mov byte [ebp - 4], 4
mov dword [ebp - 0x1f0], 0x64a6847d
mov dword [ebp - 0x1e8], 0xbfa32a17
mov dword [ebp - 0x220], 0xffffffff
mov dword [ebp - 0x1e0], 0x2411
cmp dword [ebp - 0x1e0], 0xa14
jge 0x10022290
and dword [ebp - 0x68], 0
lea eax, [ebp - 0x68]
push eax
push 0x1000c2b4
call fcn.10050cbb
pop ecx
pop ecx
xor ecx, ecx
mov eax, dword [ebp - 0x68]
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1004abcb
pop ecx
mov dword [ebp - 0x208], eax
mov eax, dword [ebp - 0x208]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x48], 0x3b9aca00
and dword [ebp - 0x44], 0
jmp 0x10022219
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x68]
jge 0x10022253
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x50]
lea eax, [ecx + eax*4]
push eax
push 0x1000c28c
call fcn.10050cbb
pop ecx
pop ecx
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx + eax*4]
cmp eax, dword [ebp - 0x48]
jge 0x10022251
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x48], eax
jmp 0x10022212
and dword [ebp - 0x70], 0
jmp 0x10022260
mov eax, dword [ebp - 0x70]
inc eax
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x68]
jge 0x10022281
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx + eax*4]
cdq
idiv dword [ebp - 0x48]
test edx, edx
je 0x1002227f
or dword [ebp - 0x48], 0xffffffff
jmp 0x10022281
jmp 0x10022259
push dword [ebp - 0x48]
push 0x1000c2b4
call fcn.10050eef
pop ecx
pop ecx
mov byte [ebp - 0x39], 0
movzx eax, byte [ebp - 0x39]
test eax, eax
je 0x100222a1
call fcn.10021153
lea eax, [ebp - 0x1e8]
push eax
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.10010054
add esp, 0xc
lea ecx, [ebp - 0x2ac]
call fcn.100140c5
cmp eax, dword [ebp + 0xc]
je 0x10022475
mov dword [ebp - 0x210], 0x1c95
cmp dword [ebp - 0x210], 0x11cd
jge 0x10022433
lea eax, [ebp - 0x1dc]
push eax
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x1d8]
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x1f8]
push eax
mov ecx, 0x1065aed0
call fcn.10013a74
mov ecx, eax
call fcn.10013a74
mov ecx, eax
call fcn.10013a74
mov ecx, eax
call fcn.10013a74
mov ecx, eax
call fcn.10013a74
mov ecx, eax
call fcn.10013a74
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0x19c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x19c]
add ecx, dword [eax + 4]
call fcn.1001a5a1
movzx eax, al
test eax, eax
je 0x10022433
cvtsi2sd xmm0, dword [ebp - 0x1f8]
mov ecx, dword [ebp - 0x21c]
sub ecx, dword [ebp - 0x200]
movsd xmm1, qword [0x1000c8a8]
movsd qword [ebp - 0x278], xmm0
call fcn.10026ecf
mov ecx, dword [ebp - 0x1d8]
sub ecx, dword [ebp - 0x1dc]
movsd xmm1, qword [0x1000c8a8]
movsd qword [ebp - 0x264], xmm0
call fcn.10026ecf
movsd xmm1, qword [ebp - 0x264]
addsd xmm1, xmm0
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.1004eba4
pop ecx
pop ecx
fstp qword [ebp - 0x280]
movsd xmm0, qword [ebp - 0x280]
cvtsi2sd xmm1, dword [ebp - 0x1e4]
addsd xmm0, xmm1
movsd xmm1, qword [ebp - 0x278]
comisd xmm1, xmm0
jb 0x10022413
push fcn.10018a9c
mov edx, 0x1000c550
mov ecx, 0x1065ae18
call fcn.10026cf8
mov ecx, eax
call fcn.10013d78
jmp 0x1002242e
push fcn.10018a9c
mov edx, 0x1000c558
mov ecx, 0x1065ae18
call fcn.10026cf8
mov ecx, eax
call fcn.10013d78
jmp 0x100222ec
call fcn.10051d4f
mov esi, eax
lea ecx, [ebp - 0x2c4]
call fcn.100140c5
mov ecx, eax
mov eax, esi
xor edx, edx
div ecx
mov dword [ebp - 0x1ec], edx
lea eax, [ebp - 0x1ec]
push eax
lea eax, [ebp - 0x2c4]
push eax
lea eax, [ebp - 0x2ac]
push eax
call fcn.10021167
add esp, 0xc
jmp 0x100222be
mov dword [ebp - 0x54], 0xe1757117
push 2
lea ecx, [ebp - 0x238]
call fcn.100140c9
mov byte [ebp - 4], 5
mov dword [ebp - 0x1f4], 0xee4e9120
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x294]
push eax
call fcn.100211d9
pop ecx
pop ecx
mov dword [ebp - 0x54], 8
jmp 0x100224bc
mov eax, dword [ebp - 0x54]
inc eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0x12
jle 0x10022548
mov dword [ebp - 0x1c], 0x2c0d37ad
mov dword [ebp - 0x1c], 1
jmp 0x100224dd
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jl 0x10022519
mov dword [ebp - 0x5c], 0x7909b792
mov dword [ebp - 0x5c], 0
jmp 0x100224fa
mov eax, dword [ebp - 0x5c]
inc eax
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 1
jg 0x10022517
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x238]
call fcn.10014130
cmp dword [eax], 0
je 0x10022515
jmp 0x10022517
jmp 0x100224f3
jmp 0x100224d6
mov dword [ebp - 0x1c], 1
jmp 0x10022529
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jl 0x10022543
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x1f4]
push eax
call fcn.10021221
pop ecx
pop ecx
jmp 0x10022522
jmp 0x100224b5
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x238]
call fcn.1001412b
lea eax, [ebp - 0x2ac]
push eax
mov ecx, dword [ebp + 8]
call fcn.10026694
mov eax, dword [ebp - 0x1a4]
or eax, 1
mov dword [ebp - 0x1a4], eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2ac]
call fcn.1001406e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c4]
call fcn.1001406e
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret