Function at 0x100161d4
Capabilities:
Contain obfuscated stackstrings
Enumerate pe sections
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006c994
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2f0
push esi
and dword [ebp - 0x18], 0
movzx eax, byte [ebp + 0x30]
test eax, eax
je 0x1001753e
lea eax, [ebp + 0x18]
mov dword [ebp - 0x18c], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x200], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1d8], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1b4], eax
mov eax, dword [ebp - 0x18c]
movzx eax, byte [eax]
test eax, eax
je 0x100174e7
mov eax, dword [ebp - 0x1d8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x160]
movzx eax, word [eax]
cmp eax, 0x5a4d
je 0x1001625f
jmp 0x10017663
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x24]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
cmp dword [eax], 0x4550
je 0x1001627e
jmp 0x10017663
push 8
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x38]
lea eax, [ecx + eax + 0x78]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
cmp dword [eax + 4], 0
jne 0x1001629c
jmp 0x10017663
and dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x38]
movzx eax, word [eax + 0x14]
mov ecx, dword [ebp - 0x38]
lea eax, [ecx + eax + 0x18]
mov dword [ebp - 0x34], eax
and dword [ebp - 0x138], 0
jmp 0x100162d0
mov eax, dword [ebp - 0x138]
inc eax
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x34]
add eax, 0x28
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x38]
movzx eax, word [eax + 6]
cmp dword [ebp - 0x138], eax
jge 0x10016337
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x140]
jb 0x10016335
mov eax, dword [ebp - 0x38]
push dword [eax + 0x38]
mov eax, dword [ebp - 0x34]
push dword [eax + 8]
call fcn.10015ba7
pop ecx
pop ecx
add eax, dword [ebp - 0x140]
mov dword [ebp - 0x1e0], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x1e0]
jae 0x10016335
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
mov eax, dword [eax + 0x14]
sub eax, dword [ecx + 0xc]
mov dword [ebp - 0x1c], eax
jmp 0x10016337
jmp 0x100162ba
cmp dword [ebp - 0x1c], 0
jne 0x10016342
jmp 0x10017663
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
add ecx, dword [eax]
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x14], ecx
xor ecx, ecx
call fcn.1000cf8b
push eax
call fcn.10052b96
pop ecx
mov byte [ebp - 0x7c], 1
mov byte [ebp - 0x7b], 0xc8
mov byte [ebp - 0x7a], 3
mov byte [ebp - 0x79], 2
mov byte [ebp - 0x78], 0xd
mov byte [ebp - 0x77], 0x8c
mov byte [ebp - 0x76], 0xfc
mov byte [ebp - 0x75], 0x8e
mov byte [ebp - 0x74], 0x49
mov byte [ebp - 0x73], 0xb1
mov byte [ebp - 0x72], 0x33
mov byte [ebp - 0x71], 0xb8
mov byte [ebp - 0x70], 0x1f
mov byte [ebp - 0x6f], 0x8c
mov byte [ebp - 0x6e], 0x16
mov byte [ebp - 0x6d], 0x30
mov byte [ebp - 0x6c], 0xf3
mov byte [ebp - 0x6b], 6
mov byte [ebp - 0x6a], 6
mov byte [ebp - 0x69], 6
mov byte [ebp - 0x68], 4
mov byte [ebp - 0x67], 9
mov byte [ebp - 0x66], 0
mov byte [ebp - 0x65], 9
mov byte [ebp - 0x64], 5
mov byte [ebp - 0x63], 0
mov byte [ebp - 0x62], 8
mov byte [ebp - 0x61], 1
mov byte [ebp - 0x60], 2
mov byte [ebp - 0x5f], 7
mov byte [ebp - 0x5e], 9
mov byte [ebp - 0x5d], 7
mov byte [ebp - 0x5c], 7
mov byte [ebp - 0x5b], 6
xor eax, eax
inc eax
shl eax, 0
movzx eax, byte [ebp + eax - 0x7c]
or eax, 0xfd
xor ecx, ecx
inc ecx
shl ecx, 0
movzx ecx, byte [ebp + ecx - 0x7c]
and ecx, 0xfd
sub eax, ecx
xor ecx, ecx
inc ecx
imul ecx, ecx, 0
movzx ecx, byte [ebp + ecx - 0x7c]
mov byte [ebp + ecx - 0x16c], al
mov dword [ebp - 0x20], 2
and dword [ebp - 0x4c], 0
jmp 0x10016430
mov eax, dword [ebp - 0x20]
inc eax
inc eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x22
jae 0x100164f7
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0x7c]
lea eax, [eax + eax + 2]
cmp dword [ebp - 0x20], eax
jne 0x1001646e
mov eax, dword [ebp - 0x20]
movzx eax, byte [ebp + eax - 0x7c]
inc eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x20]
movzx eax, byte [ebp + eax - 0x7c]
mov ecx, dword [ebp - 0x20]
lea eax, [ecx + eax - 1]
mov dword [ebp - 0x20], eax
jmp 0x10016428
mov eax, dword [ebp - 0x20]
movzx eax, byte [ebp + eax - 0x7b]
mov ecx, dword [ebp - 0x20]
sub ecx, dword [ebp - 0x4c]
movzx ecx, byte [ebp + ecx - 0x7e]
movsx ecx, byte [ebp + ecx - 0x16c]
add eax, ecx
mov ecx, dword [ebp - 0x20]
movzx ecx, byte [ebp + ecx - 0x7b]
mov edx, dword [ebp - 0x20]
sub edx, dword [ebp - 0x4c]
movzx edx, byte [ebp + edx - 0x7e]
movsx edx, byte [ebp + edx - 0x16c]
and ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x20]
movzx ecx, byte [ebp + ecx - 0x7b]
mov edx, dword [ebp - 0x20]
sub edx, dword [ebp - 0x4c]
movzx edx, byte [ebp + edx - 0x7e]
movsx edx, byte [ebp + edx - 0x16c]
and ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x20]
movzx ecx, byte [ebp + ecx - 0x7c]
mov byte [ebp + ecx - 0x16c], al
push 0
push 0x3a35
lea eax, [ebp - 0x4c]
push eax
push 0x2cbf
push 0
call fcn.10015cd0
add esp, 0x14
jmp 0x10016428
xor eax, eax
inc eax
imul eax, eax, 0xa
mov byte [ebp + eax - 0x16c], 0
lea eax, [ebp - 0x16c]
push eax
lea ecx, [ebp - 0x2fc]
call fcn.1001a38a
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp - 0x1e8]
mov dword [ebp - 0x21c], eax
and dword [ebp - 4], 0
push 0xa
xor edx, edx
mov ecx, dword [ebp - 0x21c]
call fcn.1000cf50
pop ecx
mov dword [ebp - 0x204], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2fc]
call fcn.1001a412
and dword [ebp - 0x9c], 0
jmp 0x10016568
mov eax, dword [ebp - 0x9c]
inc eax
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0xb
jae 0x10016581
mov eax, dword [ebp - 0x9c]
mov byte [ebp + eax - 0x16c], 0
jmp 0x1001655b
mov byte [ebp - 0xd8], 0
mov byte [ebp - 0xd7], 0x30
mov byte [ebp - 0xd6], 0x27
mov byte [ebp - 0xd5], 0xf5
mov byte [ebp - 0xd4], 0xa1
mov byte [ebp - 0xd3], 0x90
mov byte [ebp - 0xd2], 0x7a
mov byte [ebp - 0xd1], 0x32
mov byte [ebp - 0xd0], 0xa3
mov byte [ebp - 0xcf], 0xc9
mov byte [ebp - 0xce], 0x52
mov byte [ebp - 0xcd], 0xd4
mov byte [ebp - 0xcc], 0xa4
mov byte [ebp - 0xcb], 0x5d
mov byte [ebp - 0xca], 0xef
mov byte [ebp - 0xc9], 0x25
mov byte [ebp - 0xc8], 0x96
mov byte [ebp - 0xc7], 0x56
mov byte [ebp - 0xc6], 0x44
mov byte [ebp - 0xc5], 0x5f
mov byte [ebp - 0xc4], 0x49
mov byte [ebp - 0xc3], 0x68
mov byte [ebp - 0xc2], 0x90
mov byte [ebp - 0xc1], 0x7c
mov byte [ebp - 0xc0], 0xf0
mov byte [ebp - 0xbf], 0xe5
mov byte [ebp - 0xbe], 0x44
mov byte [ebp - 0xbd], 0x14
mov byte [ebp - 0xbc], 0x46
mov byte [ebp - 0xbb], 0x77
mov byte [ebp - 0xba], 0x4c
mov byte [ebp - 0xb9], 0x95
mov byte [ebp - 0xb8], 0x22
mov byte [ebp - 0xb7], 0x45
mov byte [ebp - 0xb6], 0x39
mov byte [ebp - 0xb5], 0xd1
mov byte [ebp - 0xb4], 0x40
mov byte [ebp - 0xb3], 0xd4
mov byte [ebp - 0xb2], 0x1e
mov byte [ebp - 0xb1], 0x7d
mov byte [ebp - 0xb0], 3
mov byte [ebp - 0xaf], 0xc2
mov byte [ebp - 0xae], 5
mov byte [ebp - 0xad], 0
mov byte [ebp - 0xac], 6
mov byte [ebp - 0xab], 8
mov byte [ebp - 0xaa], 3
mov byte [ebp - 0xa9], 0xb
mov byte [ebp - 0xa8], 9
mov byte [ebp - 0xa7], 2
mov byte [ebp - 0xa6], 8
mov byte [ebp - 0xa5], 0
mov byte [ebp - 0xa4], 2
mov byte [ebp - 0xa3], 7
mov byte [ebp - 0xa2], 1
mov byte [ebp - 0xa1], 1
mov byte [ebp - 0xa0], 7
mov byte [ebp - 0x9f], 0
mov byte [ebp - 0x9e], 4
mov byte [ebp - 0x9d], 2
xor eax, eax
inc eax
shl eax, 0
movzx eax, byte [ebp + eax - 0xd8]
or eax, 1
xor ecx, ecx
inc ecx
shl ecx, 0
movzx ecx, byte [ebp + ecx - 0xd8]
and ecx, 1
sub eax, ecx
xor ecx, ecx
inc ecx
imul ecx, ecx, 0
movzx ecx, byte [ebp + ecx - 0xd8]
mov byte [ebp + ecx - 0x178], al
mov dword [ebp - 0x28], 2
and dword [ebp - 0x90], 0
jmp 0x10016776
mov eax, dword [ebp - 0x28]
inc eax
inc eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x3c
jae 0x1001682c
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0xd8]
lea eax, [eax + eax + 2]
cmp dword [ebp - 0x28], eax
jne 0x100167c0
mov eax, dword [ebp - 0x28]
movzx eax, byte [ebp + eax - 0xd8]
inc eax
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x28]
movzx eax, byte [ebp + eax - 0xd8]
mov ecx, dword [ebp - 0x28]
lea eax, [ecx + eax - 1]
mov dword [ebp - 0x28], eax
jmp 0x1001676e
mov eax, dword [ebp - 0x28]
movzx eax, byte [ebp + eax - 0xd7]
mov ecx, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x90]
movzx ecx, byte [ebp + ecx - 0xda]
movsx ecx, byte [ebp + ecx - 0x178]
or eax, ecx
mov ecx, dword [ebp - 0x28]
movzx ecx, byte [ebp + ecx - 0xd7]
mov edx, dword [ebp - 0x28]
sub edx, dword [ebp - 0x90]
movzx edx, byte [ebp + edx - 0xda]
movsx edx, byte [ebp + edx - 0x178]
and ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x28]
movzx ecx, byte [ebp + ecx - 0xd8]
mov byte [ebp + ecx - 0x178], al
and dword [ebp - 0x90], 0
jmp 0x1001676e
xor eax, eax
inc eax
imul eax, eax, 0xa
mov byte [ebp + eax - 0x178], 0
lea eax, [ebp - 0x178]
push eax
lea ecx, [ebp - 0x2b4]
call fcn.1001a38a
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x224]
mov dword [ebp - 0x218], eax
mov dword [ebp - 4], 1
push 0xa
xor edx, edx
mov ecx, dword [ebp - 0x218]
call fcn.1000cf50
pop ecx
mov dword [ebp - 0x184], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2b4]
call fcn.1001a412
and dword [ebp - 0x88], 0
jmp 0x100168a0
mov eax, dword [ebp - 0x88]
inc eax
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0xb
jae 0x100168b9
mov eax, dword [ebp - 0x88]
mov byte [ebp + eax - 0x178], 0
jmp 0x10016893
push dword [ebp - 0x184]
push dword [ebp - 0x204]
call fcn.1001457d
pop ecx
pop ecx
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x148]
mov dword [eax + 8], ecx
push 0xd3a
push 0x6dae
lea eax, [ebp - 0x148]
push eax
push 0
lea eax, [ebp - 0x14]
push eax
push 0
push 0x6936
call fcn.10015d6f
add esp, 0x1c
and dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x18], 0
jbe 0x10016945
push 1
push 0x1a5f
push 0x6b41
push 0x35f0
push 0x6e90
push 0x75d5
lea eax, [ebp - 0x40]
push eax
push 0
lea eax, [ebp - 0x14]
push eax
push 0x49db
push 0
call fcn.10015e45
add esp, 0x2c
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x14]
sub eax, dword [ebp - 0x40]
mov dword [ebp - 0x3c], eax
and dword [ebp - 0x50], 0
jmp 0x10016967
mov eax, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x3c]
jge 0x100169eb
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 0x14]
sub eax, dword [ecx + 0x18]
cmp dword [ebp - 0x50], eax
jae 0x1001699a
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
add ecx, dword [eax + 0x1c]
add ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x50]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x13c], eax
jmp 0x100169ba
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x14]
mov ecx, dword [ebp - 0x34]
add eax, dword [ecx + 0x10]
push eax
mov eax, dword [ebp - 0x34]
push dword [eax + 0x14]
call fcn.1001457d
pop ecx
pop ecx
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x13c]
mov dword [ecx + eax], edx
push 0
push 0x1de2
push 0x70ad
lea eax, [ebp - 0x10]
push eax
push 1
call fcn.10015cd0
add esp, 0x14
jmp 0x10016960
push 0x27b8
lea eax, [ebp - 0x40]
push eax
push 1
push 0x5c7e
lea eax, [ebp - 0x14]
push eax
push 0x12e0
push 0
push 0x5466
push 0x551f
call fcn.100160ce
add esp, 0x24
push 1
push 0x42f7
push 0x158c
push 0x4f98
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x3c]
push eax
push 0x7de7
push 0
push 0x4071
lea eax, [ebp - 0x40]
push eax
push 1
call fcn.10015e45
add esp, 0x2c
and dword [ebp - 0x12c], 0
jmp 0x10016a61
mov eax, dword [ebp - 0x12c]
inc eax
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
cmp eax, dword [ebp - 0x3c]
jge 0x10016ad4
push 0
push 0x6da
push 0x5e27
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
push 1
lea eax, [ebp - 0x10]
push eax
push 0x7f6c
push 0x2b0b
call fcn.10015c01
add esp, 0x24
push 0x17e
push 0
push 0x6b89
push 0
push 0x68dd
lea eax, [ebp - 0x10]
push eax
push 0x5d02
push 1
push 0x4d1b
push 0xc73
push 0x7e7f
push 0x128
call fcn.100161d4
add esp, 0x30
jmp 0x10016a54
mov eax, dword [ebp - 0x3c]
shl eax, 2
mov ecx, dword [ebp - 0x10]
sub ecx, eax
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x18]
sub eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x18], eax
and dword [ebp - 0x94], 0
jmp 0x10016b0a
mov eax, dword [ebp - 0x94]
inc eax
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp - 0x3c]
jge 0x10016b45
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
add ecx, dword [eax + 0x24]
mov eax, dword [ebp - 0x94]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x24]
mov ax, word [esi + eax]
mov word [edx + ecx], ax
mov eax, dword [ebp - 0x10]
inc eax
inc eax
mov dword [ebp - 0x10], eax
jmp 0x10016afd
mov eax, dword [ebp - 0x3c]
shl eax, 1
mov ecx, dword [ebp - 0x10]
sub ecx, eax
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
add ecx, dword [eax + 0xc]
add ecx, dword [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x254]
call fcn.1001a38a
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x254]
call fcn.10019c13
mov dword [ebp - 0x154], eax
push dword [ebp - 0x154]
mov eax, dword [ebp - 0x154]
shr eax, 1
push eax
call fcn.1001457d
pop ecx
pop ecx
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x128], 3
mov byte [ebp - 0x127], 0x19
mov byte [ebp - 0x126], 0
mov byte [ebp - 0x125], 0x42
mov byte [ebp - 0x124], 2
mov byte [ebp - 0x123], 0x42
mov byte [ebp - 0x122], 1
mov byte [ebp - 0x121], 8
mov byte [ebp - 0x120], 0x46
mov byte [ebp - 0x11f], 0x46
mov byte [ebp - 0x11e], 0xd0
mov byte [ebp - 0x11d], 0x55
mov byte [ebp - 0x11c], 0x4b
mov byte [ebp - 0x11b], 0xc2
mov byte [ebp - 0x11a], 0xf0
mov byte [ebp - 0x119], 0x8d
mov byte [ebp - 0x118], 0xd1
mov byte [ebp - 0x117], 0x3a
mov byte [ebp - 0x116], 0x1b
mov byte [ebp - 0x115], 0x4c
mov byte [ebp - 0x114], 0xa1
mov byte [ebp - 0x113], 0xfc
mov byte [ebp - 0x112], 0x4f
mov byte [ebp - 0x111], 0xf5
mov byte [ebp - 0x110], 0xc
mov byte [ebp - 0x10f], 0xc2
mov byte [ebp - 0x10e], 0x29
mov byte [ebp - 0x10d], 0x3a
mov byte [ebp - 0x10c], 0x45
mov byte [ebp - 0x10b], 0xfa
mov byte [ebp - 0x10a], 0xf3
mov byte [ebp - 0x109], 0xa8
mov byte [ebp - 0x108], 0xa1
mov byte [ebp - 0x107], 0xe4
mov byte [ebp - 0x106], 0xfd
mov byte [ebp - 0x105], 0xef
mov byte [ebp - 0x104], 0xe0
mov byte [ebp - 0x103], 0xfc
mov byte [ebp - 0x102], 0xd5
mov byte [ebp - 0x101], 0x95
mov byte [ebp - 0x100], 0xb6
mov byte [ebp - 0xff], 0xb9
mov byte [ebp - 0xfe], 0xad
mov byte [ebp - 0xfd], 9
mov byte [ebp - 0xfc], 0x82
mov byte [ebp - 0xfb], 0x2b
mov byte [ebp - 0xfa], 5
mov byte [ebp - 0xf9], 0x77
mov byte [ebp - 0xf8], 0xf1
mov byte [ebp - 0xf7], 0xea
mov byte [ebp - 0xf6], 0x6e
mov byte [ebp - 0xf5], 0x51
mov byte [ebp - 0xf4], 0x7a
mov byte [ebp - 0xf3], 0x7a
mov byte [ebp - 0xf2], 0x7c
mov byte [ebp - 0xf1], 0x50
mov byte [ebp - 0xf0], 0xe0
mov byte [ebp - 0xef], 0xfb
mov byte [ebp - 0xee], 0xb1
mov byte [ebp - 0xed], 0x75
mov byte [ebp - 0xec], 0x46
mov byte [ebp - 0xeb], 0xdf
mov byte [ebp - 0xea], 5
mov byte [ebp - 0xe9], 0xce
mov byte [ebp - 0xe8], 0x6b
mov byte [ebp - 0xe7], 0xec
mov byte [ebp - 0xe6], 0x4c
mov byte [ebp - 0xe5], 0x83
mov byte [ebp - 0xe4], 0x95
mov byte [ebp - 0xe3], 0xd4
mov byte [ebp - 0xe2], 0xa7
mov byte [ebp - 0xe1], 0x6c
mov byte [ebp - 0xe0], 0x5f
mov byte [ebp - 0xdf], 0xa0
mov byte [ebp - 0xde], 0x35
mov byte [ebp - 0xdd], 0xb8
mov byte [ebp - 0xdc], 0xd0
mov byte [ebp - 0xdb], 0x2e
mov byte [ebp - 0xda], 0x31
xor eax, eax
inc eax
shl eax, 0
movzx eax, byte [ebp + eax - 0x128]
or eax, 0x75
xor ecx, ecx
inc ecx
shl ecx, 0
movzx ecx, byte [ebp + ecx - 0x128]
and ecx, 0x75
sub eax, ecx
xor ecx, ecx
inc ecx
imul ecx, ecx, 0
movzx ecx, byte [ebp + ecx - 0x128]
mov byte [ebp + ecx - 0x58], al
mov dword [ebp - 0x2c], 2
and dword [ebp - 0x8c], 0
jmp 0x10016e15
mov eax, dword [ebp - 0x2c]
inc eax
inc eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x4f
jae 0x10016ec2
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0x128]
lea eax, [eax + eax + 2]
cmp dword [ebp - 0x2c], eax
jne 0x10016e5f
mov eax, dword [ebp - 0x2c]
movzx eax, byte [ebp + eax - 0x128]
inc eax
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x2c]
movzx eax, byte [ebp + eax - 0x128]
mov ecx, dword [ebp - 0x2c]
lea eax, [ecx + eax - 1]
mov dword [ebp - 0x2c], eax
jmp 0x10016e0d
mov eax, dword [ebp - 0x2c]
movzx eax, byte [ebp + eax - 0x127]
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x8c]
movzx ecx, byte [ebp + ecx - 0x12a]
movsx ecx, byte [ebp + ecx - 0x58]
or eax, ecx
mov ecx, dword [ebp - 0x2c]
movzx ecx, byte [ebp + ecx - 0x127]
mov edx, dword [ebp - 0x2c]
sub edx, dword [ebp - 0x8c]
movzx edx, byte [ebp + edx - 0x12a]
movsx edx, byte [ebp + edx - 0x58]
and ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x2c]
movzx ecx, byte [ebp + ecx - 0x128]
mov byte [ebp + ecx - 0x58], al
and dword [ebp - 0x8c], 0
jmp 0x10016e0d
mov dword [ebp - 0x17c], 0x2413
cmp dword [ebp - 0x17c], 0x59b
jge 0x10017060
call fcn.10052475
push 0x20
pop ecx
imul ecx, ecx, 0
add eax, ecx
push eax
push 0x1000b2c8
push 0x1000b2cc
call fcn.10052ca0
add esp, 0xc
call fcn.10052475
push 0x20
pop ecx
shl ecx, 0
add eax, ecx
push eax
push 0x1000b2d4
push 0x1000b2d8
call fcn.10052ca0
add esp, 0xc
lea eax, [ebp - 0x1ec]
push eax
mov ecx, 0x1065e1b0
call fcn.10019c2c
and dword [ebp - 0x134], 0
jmp 0x10016f43
mov eax, dword [ebp - 0x134]
inc eax
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x134]
cmp eax, dword [ebp - 0x1ec]
jge 0x10017060
mov edx, 0x107e89b4
mov ecx, 0x1065e1b0
call fcn.1001efef
push 0
mov ecx, 0x107e89b4
call fcn.10019bff
movsx eax, byte [eax]
cmp eax, 0x61
je 0x10016fc8
push 0
mov ecx, 0x107e89b4
call fcn.10019bff
movsx eax, byte [eax]
cmp eax, 0x65
je 0x10016fc8
push 0
mov ecx, 0x107e89b4
call fcn.10019bff
movsx eax, byte [eax]
cmp eax, 0x69
je 0x10016fc8
push 0
mov ecx, 0x107e89b4
call fcn.10019bff
movsx eax, byte [eax]
cmp eax, 0x6f
je 0x10016fc8
push 0
mov ecx, 0x107e89b4
call fcn.10019bff
movsx eax, byte [eax]
cmp eax, 0x75
jne 0x10016ff1
push fcn.1001ed7d
mov edx, 0x107e89b4
mov ecx, 0x1065e0f8
call fcn.1001eff4
mov edx, 0x1000b2e0
mov ecx, eax
call fcn.1001edaf
mov ecx, eax
call fcn.1001a045
jmp 0x1001705b
mov dword [ebp - 0x80], 1
jmp 0x10017001
mov eax, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x80], eax
mov ecx, 0x107e89b4
call fcn.10019c13
cmp dword [ebp - 0x80], eax
jae 0x1001702b
push dword [ebp - 0x80]
mov ecx, 0x107e89b4
call fcn.10019bff
mov dl, byte [eax]
mov ecx, 0x1065e0f8
call fcn.1001f191
jmp 0x10016ffa
push fcn.1001ed7d
push 0
mov ecx, 0x107e89b4
call fcn.10019bff
mov dl, byte [eax]
mov ecx, 0x1065e0f8
call fcn.1001f191
mov edx, 0x1000b2e4
mov ecx, eax
call fcn.1001edaf
mov ecx, eax
call fcn.1001a045
jmp 0x10016f36
xor eax, eax
inc eax
shl eax, 2
mov byte [ebp + eax - 0x58], 0
cmp dword [ebp - 0x44], 4
jle 0x10017122
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x2e4]
call fcn.1001a38a
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x194]
mov dword [ebp - 0x19c], eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x18]
or eax, 1
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x44]
sub eax, 4
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.100150dd
pop ecx
pop ecx
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0x20c]
mov dword [ebp - 0x214], eax
mov dword [ebp - 4], 4
mov eax, dword [ebp - 0x18]
or eax, 2
mov dword [ebp - 0x18], eax
push dword [ebp - 0x19c]
mov edx, dword [ebp - 0x214]
lea ecx, [ebp - 0x2cc]
call fcn.1001f347
pop ecx
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 4], 5
mov eax, dword [ebp - 0x18]
or eax, 4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1f8]
mov dword [ebp - 0x144], eax
jmp 0x1001714e
push dword [ebp - 0x44]
lea eax, [ebp - 0x29c]
push eax
call fcn.100150dd
pop ecx
pop ecx
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x18]
or eax, 8
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x210], eax
push dword [ebp - 0x210]
lea ecx, [ebp - 0x26c]
call fcn.1001a3b9
mov dword [ebp - 4], 6
mov eax, dword [ebp - 0x18]
and eax, 8
je 0x10017189
and dword [ebp - 0x18], 0xfffffff7
lea ecx, [ebp - 0x29c]
call fcn.1001a412
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x18]
and eax, 4
je 0x100171a4
and dword [ebp - 0x18], 0xfffffffb
lea ecx, [ebp - 0x2cc]
call fcn.1001a412
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x18]
and eax, 2
je 0x100171bf
and dword [ebp - 0x18], 0xfffffffd
lea ecx, [ebp - 0x284]
call fcn.1001a412
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x18]
and eax, 1
je 0x100171da
and dword [ebp - 0x18], 0xfffffffe
lea ecx, [ebp - 0x2e4]
call fcn.1001a412
and dword [ebp - 0x98], 0
jmp 0x100171f0
mov eax, dword [ebp - 0x98]
inc eax
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 5
jae 0x10017206
mov eax, dword [ebp - 0x98]
mov byte [ebp + eax - 0x58], 0
jmp 0x100171e3
push 1
push 0x770d
push 0xfa9
push 0x3966
push 0x751
push 1
push 0x5ea1
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.10015c01
add esp, 0x24
push 0
push dword [ebp - 0x44]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
add ecx, dword [eax + 0xc]
add ecx, dword [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x26c]
call fcn.1001a438
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0x10], eax
push 0x2d40
lea eax, [ebp - 0x10]
push eax
push 0x1ce1
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0
call fcn.10016030
add esp, 0x18
lea eax, [ebp - 0x10]
push eax
push 0x1867
push 0x773e
push 0
push 0x379f
push 1
push 0x7ce1
call fcn.10015d6f
add esp, 0x1c
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x18], 0
jbe 0x100172fb
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
sub ecx, dword [eax]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
sub eax, ecx
mov ecx, dword [ebp - 0x14]
xor edx, edx
div dword [ecx + 0x18]
cmp eax, 0xc
jbe 0x100172cf
mov dword [ebp - 0x15c], 0xc
jmp 0x100172ed
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
sub ecx, dword [eax]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
sub eax, ecx
mov ecx, dword [ebp - 0x14]
xor edx, edx
div dword [ecx + 0x18]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x14c], eax
jmp 0x10017302
and dword [ebp - 0x14c], 0
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x150], eax
and dword [ebp - 0x84], 0
jmp 0x10017324
mov eax, dword [ebp - 0x84]
inc eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x84]
cmp ecx, dword [eax + 0x18]
jae 0x10017466
push dword [ebp - 0x150]
mov eax, dword [ebp - 0x150]
cdq
sub eax, edx
sar eax, 1
push eax
call fcn.1001457d
pop ecx
pop ecx
mov dword [ebp - 0x130], eax
push dword [ebp - 0x130]
lea eax, [ebp - 0x23c]
push eax
call fcn.100150dd
pop ecx
pop ecx
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
add ecx, dword [eax + 0x20]
add ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x10]
mov dword [ecx + eax*4], edx
lea eax, [ebp - 0x130]
push eax
push 0
lea eax, [ebp - 0x24]
push eax
push 1
lea eax, [ebp - 0x23c]
push eax
push 0x1d10
push 0x1569
push 1
lea eax, [ebp - 0x10]
push eax
push 0x21ab
lea eax, [ebp - 0x1c]
push eax
push 0x5076
call fcn.100161d4
add esp, 0x30
push 1
lea eax, [ebp - 0x130]
push eax
push 0x6f7c
lea eax, [ebp - 0x10]
push eax
push 0x430d
push 0xb9e
push 0x332
push 1
push 0x4150
push 0x4258
push 1
call fcn.10015e45
add esp, 0x2c
push 0x7554
push 0x2ce2
lea eax, [ebp - 0x24]
push eax
push 0x4da6
push 1
push 0
push 0xef9
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10015f7a
add esp, 0x24
lea eax, [ebp - 0x10]
push eax
push 0x48d5
push 0x76f5
push 0x3346
push 1
push 1
push 0x1a32
push 0x68a4
push 0x446c
call fcn.10015f7a
add esp, 0x24
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x23c]
call fcn.1001a412
jmp 0x10017317
and dword [ebp - 0x48], 0
jmp 0x10017473
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
sub ecx, dword [eax]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
sub eax, ecx
cmp dword [ebp - 0x48], eax
jae 0x1001749a
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x24]
mov byte [ecx + eax], 0
jmp 0x1001746c
push 0x6a36
push 0x9fc
push 1
push 0x58d6
push 0x45b2
lea eax, [ebp - 0x30]
push eax
push 1
push 0x6fb0
lea eax, [ebp - 0x48]
push eax
call fcn.100160ce
add esp, 0x24
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x26c]
call fcn.1001a412
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x254]
call fcn.1001a412
jmp 0x10017539
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x1bc], eax
mov eax, dword [ebp - 0x200]
mov dword [ebp - 0x220], eax
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x208], eax
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x1c4], eax
call fcn.10052b75
mov esi, eax
mov ecx, dword [ebp - 0x1c4]
call fcn.10019c13
mov ecx, eax
mov eax, esi
xor edx, edx
div ecx
mov eax, dword [ebp - 0x208]
mov dword [eax], edx
jmp 0x10017663
mov eax, dword [ebp + 0x34]
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x1f0], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x1d4], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x1c8], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x1dc], eax
lea eax, [ebp + 0x28]
mov dword [ebp - 0x1cc], eax
mov eax, dword [ebp - 0x1cc]
movzx eax, byte [eax]
test eax, eax
je 0x10017638
mov eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x1e4], eax
mov eax, dword [ebp - 0x1d4]
mov dword [ebp - 0x180], eax
mov eax, dword [ebp - 0x1f4]
mov dword [ebp - 0x188], eax
mov eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x190], eax
mov eax, dword [ebp - 0x1fc]
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x1c0], eax
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x190]
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0x198]
mov dword [ebp - 0x1a0], eax
push 0
mov eax, dword [ebp - 0x1a0]
push dword [eax]
mov eax, dword [ebp - 0x1a8]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x1b0]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x1b8]
mov ecx, dword [ecx]
add ecx, eax
push ecx
mov ecx, dword [ebp - 0x1c0]
call fcn.1001a438
jmp 0x10017663
mov eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x1d0], eax
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x158]
mov eax, dword [eax]
add eax, 4
mov ecx, dword [ebp - 0x158]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret