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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10064209
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x35c
push ebx
push esi
push edi
cmp dword [ebp + 0x10], 0
jbe 0x10015fc2
movzx eax, byte [ebp + 0x14]
test eax, eax
je 0x10015fc2
movzx eax, word [ebp + 0x10]
push eax
push dword [ebp + 8]
call fcn.10015936
pop ecx
pop ecx
jmp 0x100176f5
cmp dword [ebp + 0x10], 0
jne 0x100169dc
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
call fcn.10013aa2
mov dword [ebp - 0x64], eax
cmp dword [0x106552fc], 0
jne 0x100169b0
mov dword [ebp - 0x27c], 0x8043
lea eax, [ebp - 0x27c]
push eax
call fcn.1001582f
pop ecx
mov dword [ebp - 0x204], eax
mov byte [ebp - 0x1d8], 5
mov byte [ebp - 0x1d7], 0x36
mov byte [ebp - 0x1d6], 0xa
mov byte [ebp - 0x1d5], 0x37
mov byte [ebp - 0x1d4], 2
mov byte [ebp - 0x1d3], 0x31
mov byte [ebp - 0x1d2], 0xb
mov byte [ebp - 0x1d1], 0xc
mov byte [ebp - 0x1d0], 0
mov byte [ebp - 0x1cf], 0x3f
mov byte [ebp - 0x1ce], 8
mov byte [ebp - 0x1cd], 0x28
mov byte [ebp - 0x1cc], 0x60
mov byte [ebp - 0x1cb], 0x80
mov byte [ebp - 0x1ca], 0xd6
mov byte [ebp - 0x1c9], 0x32
mov byte [ebp - 0x1c8], 0x3f
mov byte [ebp - 0x1c7], 0xd8
mov byte [ebp - 0x1c6], 0xb8
mov byte [ebp - 0x1c5], 0xfd
mov byte [ebp - 0x1c4], 0xf9
mov byte [ebp - 0x1c3], 0xf9
mov byte [ebp - 0x1c2], 0xc5
mov byte [ebp - 0x1c1], 0x49
mov byte [ebp - 0x1c0], 0x74
mov byte [ebp - 0x1bf], 0xe1
mov byte [ebp - 0x1be], 0x5d
mov byte [ebp - 0x1bd], 0xac
mov byte [ebp - 0x1bc], 0x7c
mov byte [ebp - 0x1bb], 6
mov byte [ebp - 0x1ba], 0xa3
mov byte [ebp - 0x1b9], 0x6e
mov byte [ebp - 0x1b8], 0x75
mov byte [ebp - 0x1b7], 0x6f
mov byte [ebp - 0x1b6], 0x40
mov byte [ebp - 0x1b5], 0xd
mov byte [ebp - 0x1b4], 0x39
mov byte [ebp - 0x1b3], 0xc8
mov byte [ebp - 0x1b2], 0xc2
mov byte [ebp - 0x1b1], 0xec
mov byte [ebp - 0x1b0], 0xa8
mov byte [ebp - 0x1af], 8
mov byte [ebp - 0x1ae], 0x38
mov byte [ebp - 0x1ad], 0xe2
mov byte [ebp - 0x1ac], 0x12
mov byte [ebp - 0x1ab], 0x92
mov byte [ebp - 0x1aa], 0xc4
mov byte [ebp - 0x1a9], 0x30
mov byte [ebp - 0x1a8], 0x59
mov byte [ebp - 0x1a7], 0x88
mov byte [ebp - 0x1a6], 0xe3
mov byte [ebp - 0x1a5], 0x20
mov byte [ebp - 0x1a4], 0xa9
mov byte [ebp - 0x1a3], 0x8b
mov byte [ebp - 0x1a2], 0x90
mov byte [ebp - 0x1a1], 0x5b
mov byte [ebp - 0x1a0], 0x8b
mov byte [ebp - 0x19f], 0xb9
mov byte [ebp - 0x19e], 0xf3
mov byte [ebp - 0x19d], 0x25
mov byte [ebp - 0x19c], 0x33
mov byte [ebp - 0x19b], 0xae
mov byte [ebp - 0x19a], 0x67
mov byte [ebp - 0x199], 0x1f
mov byte [ebp - 0x198], 0xd5
mov byte [ebp - 0x197], 0xb5
mov byte [ebp - 0x196], 0x73
mov byte [ebp - 0x195], 0xbd
mov byte [ebp - 0x194], 0x5f
mov byte [ebp - 0x193], 0x97
mov byte [ebp - 0x192], 0x74
mov byte [ebp - 0x191], 0xf6
mov byte [ebp - 0x190], 0xd6
mov byte [ebp - 0x18f], 0x98
mov byte [ebp - 0x18e], 0xb0
mov byte [ebp - 0x18d], 0x84
mov byte [ebp - 0x18c], 0xcd
mov byte [ebp - 0x18b], 0x1f
mov byte [ebp - 0x18a], 0xfd
mov byte [ebp - 0x189], 0x1d
mov byte [ebp - 0x188], 0xab
mov byte [ebp - 0x187], 0xb
mov byte [ebp - 0x186], 0x32
mov byte [ebp - 0x185], 5
mov byte [ebp - 0x184], 0x18
mov byte [ebp - 0x183], 0x47
mov byte [ebp - 0x182], 0x9d
mov byte [ebp - 0x181], 0x65
mov byte [ebp - 0x180], 2
mov byte [ebp - 0x17f], 0x11
mov byte [ebp - 0x17e], 0x30
mov byte [ebp - 0x17d], 0x38
mov byte [ebp - 0x17c], 0xe2
mov byte [ebp - 0x17b], 0xf9
mov byte [ebp - 0x17a], 0x8b
mov byte [ebp - 0x179], 0xd4
mov byte [ebp - 0x178], 0x3c
mov byte [ebp - 0x177], 0x31
mov byte [ebp - 0x176], 0xae
mov byte [ebp - 0x175], 0xc8
mov byte [ebp - 0x174], 0x8a
mov byte [ebp - 0x173], 0x8f
mov byte [ebp - 0x172], 0x77
mov byte [ebp - 0x171], 0x9a
mov byte [ebp - 0x170], 0x93
mov byte [ebp - 0x16f], 0xea
mov byte [ebp - 0x16e], 0x1d
mov byte [ebp - 0x16d], 0x2e
mov byte [ebp - 0x16c], 0x52
mov byte [ebp - 0x16b], 1
mov byte [ebp - 0x16a], 0xa
mov byte [ebp - 0x169], 0xc
mov byte [ebp - 0x168], 0x32
mov byte [ebp - 0x167], 6
mov byte [ebp - 0x166], 0x24
mov byte [ebp - 0x165], 9
mov byte [ebp - 0x164], 0x1d
mov byte [ebp - 0x163], 7
mov byte [ebp - 0x162], 7
mov byte [ebp - 0x161], 4
mov byte [ebp - 0x160], 0xc
mov byte [ebp - 0x15f], 3
mov byte [ebp - 0x15e], 0x33
xor eax, eax
inc eax
shl eax, 0
movzx eax, byte [ebp + eax - 0x1d8]
or eax, 0x44
xor ecx, ecx
inc ecx
shl ecx, 0
movzx ecx, byte [ebp + ecx - 0x1d8]
and ecx, 0x44
sub eax, ecx
xor ecx, ecx
inc ecx
imul ecx, ecx, 0
movzx ecx, byte [ebp + ecx - 0x1d8]
mov byte [ebp + ecx - 0x21c], al
mov dword [ebp - 0x14], 2
and dword [ebp - 0x48], 0
jmp 0x100163af
mov eax, dword [ebp - 0x14]
inc eax
inc eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x7b
jae 0x1001647e
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0x1d8]
lea eax, [eax + eax + 2]
cmp dword [ebp - 0x14], eax
jne 0x100163f6
mov eax, dword [ebp - 0x14]
movzx eax, byte [ebp + eax - 0x1d8]
inc eax
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x14]
movzx eax, byte [ebp + eax - 0x1d8]
mov ecx, dword [ebp - 0x14]
lea eax, [ecx + eax - 1]
mov dword [ebp - 0x14], eax
jmp 0x100163a7
mov eax, dword [ebp - 0x14]
movzx eax, byte [ebp + eax - 0x1d7]
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x48]
movzx ecx, byte [ebp + ecx - 0x1da]
movsx ecx, byte [ebp + ecx - 0x21c]
add eax, ecx
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ebp + ecx - 0x1d7]
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x48]
movzx edx, byte [ebp + edx - 0x1da]
movsx edx, byte [ebp + edx - 0x21c]
and ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ebp + ecx - 0x1d7]
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x48]
movzx edx, byte [ebp + edx - 0x1da]
movsx edx, byte [ebp + edx - 0x21c]
and ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ebp + ecx - 0x1d8]
mov byte [ebp + ecx - 0x21c], al
and dword [ebp - 0x48], 0
jmp 0x100163a7
xor eax, eax
inc eax
imul eax, eax, 0xd
mov byte [ebp + eax - 0x21c], 0
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x350]
call fcn.10018229
mov dword [ebp - 0x274], eax
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x280], eax
and dword [ebp - 4], 0
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x280]
call fcn.10013aa2
mov dword [0x106552fc], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x350]
call fcn.1000d852
and dword [ebp - 0x60], 0
jmp 0x100164e6
mov eax, dword [ebp - 0x60]
inc eax
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0xe
jae 0x100164f9
mov eax, dword [ebp - 0x60]
mov byte [ebp + eax - 0x21c], 0
jmp 0x100164df
mov byte [ebp - 0xfc], 8
mov byte [ebp - 0xfb], 0x88
mov byte [ebp - 0xfa], 0xb
mov byte [ebp - 0xf9], 0x1c
mov byte [ebp - 0xf8], 0xc
mov byte [ebp - 0xf7], 0
mov byte [ebp - 0xf6], 3
mov byte [ebp - 0xf5], 0x12
mov byte [ebp - 0xf4], 0xa
mov byte [ebp - 0xf3], 4
mov byte [ebp - 0xf2], 5
mov byte [ebp - 0xf1], 0
mov byte [ebp - 0xf0], 0xd
mov byte [ebp - 0xef], 0x32
mov byte [ebp - 0xee], 7
mov byte [ebp - 0xed], 0x25
mov byte [ebp - 0xec], 1
mov byte [ebp - 0xeb], 0
mov byte [ebp - 0xea], 0x54
mov byte [ebp - 0xe9], 0xa7
mov byte [ebp - 0xe8], 0x42
mov byte [ebp - 0xe7], 0x8f
mov byte [ebp - 0xe6], 0x15
mov byte [ebp - 0xe5], 0xb0
mov byte [ebp - 0xe4], 0xc6
mov byte [ebp - 0xe3], 0x39
mov byte [ebp - 0xe2], 0xa9
mov byte [ebp - 0xe1], 0x16
mov byte [ebp - 0xe0], 0x1e
mov byte [ebp - 0xdf], 0xcb
mov byte [ebp - 0xde], 0x20
mov byte [ebp - 0xdd], 0xb4
mov byte [ebp - 0xdc], 0x11
mov byte [ebp - 0xdb], 0x89
mov byte [ebp - 0xda], 0xa9
mov byte [ebp - 0xd9], 0xd1
mov byte [ebp - 0xd8], 0xfe
mov byte [ebp - 0xd7], 0
mov byte [ebp - 0xd6], 0xc6
mov byte [ebp - 0xd5], 0xaa
mov byte [ebp - 0xd4], 0xbf
mov byte [ebp - 0xd3], 0xc2
mov byte [ebp - 0xd2], 0xb1
mov byte [ebp - 0xd1], 0x7f
mov byte [ebp - 0xd0], 0x89
mov byte [ebp - 0xcf], 6
mov byte [ebp - 0xce], 0x8f
mov byte [ebp - 0xcd], 0xc7
mov byte [ebp - 0xcc], 0x6f
mov byte [ebp - 0xcb], 0x6b
mov byte [ebp - 0xca], 0xac
mov byte [ebp - 0xc9], 0xe1
mov byte [ebp - 0xc8], 0xd7
mov byte [ebp - 0xc7], 0xf4
mov byte [ebp - 0xc6], 0x9b
mov byte [ebp - 0xc5], 0x73
mov byte [ebp - 0xc4], 0x6f
mov byte [ebp - 0xc3], 0xf8
mov byte [ebp - 0xc2], 0x84
mov byte [ebp - 0xc1], 0xd6
mov byte [ebp - 0xc0], 0x7d
mov byte [ebp - 0xbf], 0xfc
mov byte [ebp - 0xbe], 0xc
mov byte [ebp - 0xbd], 0x2f
mov byte [ebp - 0xbc], 0x97
mov byte [ebp - 0xbb], 0xdb
mov byte [ebp - 0xba], 0x86
mov byte [ebp - 0xb9], 0xa5
mov byte [ebp - 0xb8], 0xa5
mov byte [ebp - 0xb7], 0x1b
mov byte [ebp - 0xb6], 0x6e
mov byte [ebp - 0xb5], 0xc7
mov byte [ebp - 0xb4], 0xa8
mov byte [ebp - 0xb3], 0xd5
mov byte [ebp - 0xb2], 0xd5
mov byte [ebp - 0xb1], 0x1a
mov byte [ebp - 0xb0], 0x3c
mov byte [ebp - 0xaf], 0x1b
mov byte [ebp - 0xae], 0x38
mov byte [ebp - 0xad], 0x5b
mov byte [ebp - 0xac], 0x41
mov byte [ebp - 0xab], 0x26
mov byte [ebp - 0xaa], 0xf6
mov byte [ebp - 0xa9], 0xf2
mov byte [ebp - 0xa8], 0xa9
mov byte [ebp - 0xa7], 0x61
mov byte [ebp - 0xa6], 0x5a
mov byte [ebp - 0xa5], 0xac
mov byte [ebp - 0xa4], 0xdc
mov byte [ebp - 0xa3], 0xfb
mov byte [ebp - 0xa2], 0xe4
mov byte [ebp - 0xa1], 0x9a
mov byte [ebp - 0xa0], 0x9b
mov byte [ebp - 0x9f], 0x14
mov byte [ebp - 0x9e], 0x5a
mov byte [ebp - 0x9d], 0x4b
mov byte [ebp - 0x9c], 0x6a
mov byte [ebp - 0x9b], 0xc3
mov byte [ebp - 0x9a], 0x36
mov byte [ebp - 0x99], 0xb7
mov byte [ebp - 0x98], 0xe0
mov byte [ebp - 0x97], 6
mov byte [ebp - 0x96], 5
mov byte [ebp - 0x95], 9
mov byte [ebp - 0x94], 0x11
mov byte [ebp - 0x93], 0
mov byte [ebp - 0x92], 0x20
mov byte [ebp - 0x91], 2
mov byte [ebp - 0x90], 0x26
mov byte [ebp - 0x8f], 4
mov byte [ebp - 0x8e], 0x11
mov byte [ebp - 0x8d], 6
mov byte [ebp - 0x8c], 0x24
xor eax, eax
inc eax
shl eax, 0
movzx eax, byte [ebp + eax - 0xfc]
or eax, 0xe7
xor ecx, ecx
inc ecx
shl ecx, 0
movzx ecx, byte [ebp + ecx - 0xfc]
and ecx, 0xe7
sub eax, ecx
xor ecx, ecx
inc ecx
imul ecx, ecx, 0
movzx ecx, byte [ebp + ecx - 0xfc]
mov byte [ebp + ecx - 0x22c], al
mov dword [ebp - 0x10], 2
and dword [ebp - 0x58], 0
jmp 0x10016863
mov eax, dword [ebp - 0x10]
inc eax
inc eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x71
jae 0x10016932
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0xfc]
lea eax, [eax + eax + 2]
cmp dword [ebp - 0x10], eax
jne 0x100168aa
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0xfc]
inc eax
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0xfc]
mov ecx, dword [ebp - 0x10]
lea eax, [ecx + eax - 1]
mov dword [ebp - 0x10], eax
jmp 0x1001685b
mov eax, dword [ebp - 0x10]
movzx eax, byte [ebp + eax - 0xfb]
mov ecx, dword [ebp - 0x10]
sub ecx, dword [ebp - 0x58]
movzx ecx, byte [ebp + ecx - 0xfe]
movsx ecx, byte [ebp + ecx - 0x22c]
add eax, ecx
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [ebp + ecx - 0xfb]
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp - 0x58]
movzx edx, byte [ebp + edx - 0xfe]
movsx edx, byte [ebp + edx - 0x22c]
and ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [ebp + ecx - 0xfb]
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp - 0x58]
movzx edx, byte [ebp + edx - 0xfe]
movsx edx, byte [ebp + edx - 0x22c]
and ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [ebp + ecx - 0xfc]
mov byte [ebp + ecx - 0x22c], al
and dword [ebp - 0x58], 0
jmp 0x1001685b
xor eax, eax
inc eax
imul eax, eax, 0xe
mov byte [ebp + eax - 0x22c], 0
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x368]
call fcn.10018229
mov dword [ebp - 0x244], eax
mov eax, dword [ebp - 0x244]
mov dword [ebp - 0x278], eax
mov dword [ebp - 4], 1
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x278]
call fcn.10013aa2
mov dword [0x11134edc], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x368]
call fcn.1000d852
and dword [ebp - 0x68], 0
jmp 0x1001699d
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x68], 0xf
jae 0x100169b0
mov eax, dword [ebp - 0x68]
mov byte [ebp + eax - 0x22c], 0
jmp 0x10016996
mov eax, dword [0x106552fc]
cmp eax, dword [ebp - 0x64]
je 0x100169c4
mov eax, dword [0x11134edc]
cmp eax, dword [ebp - 0x64]
jne 0x100169dc
mov ecx, dword [ebp + 0xc]
call fcn.1000d29f
push eax
push dword [ebp + 8]
call fcn.10015936
pop ecx
pop ecx
jmp 0x100176f5
mov eax, dword [ebp + 8]
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 0
je 0x100176f3
mov eax, dword [ebp - 0x74]
movzx eax, word [eax]
cmp eax, 0x5a4d
jne 0x100176f3
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x74]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp - 0x54]
cmp dword [eax], 0x4550
jne 0x100176f3
mov eax, dword [ebp - 0x54]
cmp dword [eax + 0x74], 0
jbe 0x100176f3
push 8
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x54]
cmp dword [ecx + eax + 0x78], 0
je 0x100176f3
mov eax, dword [ebp + 8]
mov dword [ebp - 0x34], eax
push 8
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x34]
add edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x24], edx
mov eax, 0xffff
mov word [ebp - 0x20], ax
or dword [ebp - 0x3c], 0xffffffff
cmp dword [ebp + 0x10], 0
jbe 0x10016a7d
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + 0x10]
cmp ecx, dword [eax + 0x14]
ja 0x10016a78
mov eax, dword [ebp + 0x10]
dec eax
mov word [ebp - 0x20], ax
jmp 0x10016c13
mov eax, dword [0x11134f0c]
and eax, 1
jne 0x10016ab4
mov eax, dword [0x11134f0c]
or eax, 1
mov dword [0x11134f0c], eax
mov dword [ebp - 4], 2
mov ecx, 0x11134f10
call fcn.1000da22
push 0x10064ea8
call fcn.1004a7e2
pop ecx
or dword [ebp - 4], 0xffffffff
movzx eax, byte [0x106552fa]
test eax, eax
je 0x10016b1a
mov ecx, 0x11134f10
call fcn.1001830d
movzx eax, al
test eax, eax
jne 0x10016b1a
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x208]
push eax
mov ecx, 0x11134f10
call fcn.1000d9fa
lea eax, [ebp - 0x2cc]
push eax
mov ecx, 0x11134f10
call fcn.1000d9ec
push eax
lea ecx, [ebp - 0x208]
call fcn.1000da0f
movzx eax, al
test eax, eax
je 0x10016b1a
lea ecx, [ebp - 0x208]
call fcn.10018316
mov eax, dword [eax + 4]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0xffffffff
jne 0x10016c13
mov ecx, 0x11134f10
call fcn.1001835a
mov ecx, dword [ebp - 0x24]
add eax, dword [ecx + 0x18]
push eax
mov ecx, 0x11134f10
call fcn.1001835e
and dword [ebp - 0x30], 0
jmp 0x10016b4c
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x30]
cmp ecx, dword [eax + 0x18]
jae 0x10016c13
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
add ecx, dword [eax + 0x20]
mov eax, dword [ebp - 0x30]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x1f8], eax
cmp dword [ebp - 0x1f8], 0
je 0x10016c0e
mov eax, dword [ebp - 0x1f8]
mov ecx, dword [ebp - 0x34]
add ecx, dword [eax]
push ecx
lea ecx, [ebp - 0x338]
call fcn.10018229
mov dword [ebp - 4], 3
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x338]
call fcn.10013aa2
mov dword [ebp - 0x1fc], eax
movzx eax, byte [0x106552fa]
test eax, eax
je 0x10016bcb
mov ecx, 0x11134f10
call fcn.1001830d
movzx eax, al
test eax, eax
jne 0x10016be8
lea eax, [ebp - 0x1fc]
push eax
mov ecx, 0x11134f10
call fcn.1001831c
mov ecx, dword [ebp - 0x30]
mov dword [eax], ecx
mov byte [0x106552fa], 1
cmp dword [ebp - 0x3c], 0xffffffff
jne 0x10016bff
mov eax, dword [ebp - 0x1fc]
cmp eax, dword [ebp - 0x64]
jne 0x10016bff
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x3c], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x338]
call fcn.1000d852
jmp 0x10016b45
cmp dword [ebp + 0x10], 0
jne 0x10016c33
cmp dword [ebp - 0x3c], 0xffffffff
je 0x10016c33
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
add ecx, dword [eax + 0x24]
mov eax, dword [ebp - 0x3c]
mov ax, word [ecx + eax*2]
mov word [ebp - 0x20], ax
movzx eax, word [ebp - 0x20]
cmp eax, 0xffff
je 0x100176f3
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
add ecx, dword [eax + 0x1c]
movzx eax, word [ebp - 0x20]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x250], eax
mov eax, dword [ebp - 0x250]
mov ecx, dword [ebp - 0x34]
add ecx, dword [eax]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x24]
jbe 0x100176ee
push 8
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x24]
add edx, dword [ecx + eax + 0x7c]
cmp dword [ebp - 0x28], edx
jae 0x100176ee
mov eax, dword [0x11134f0c]
and eax, 2
jne 0x10016cbd
mov eax, dword [0x11134f0c]
or eax, 2
mov dword [0x11134f0c], eax
mov dword [ebp - 4], 4
push 0x6464
call fcn.1000c973
pop ecx
mov byte [0x11134f50], al
or dword [ebp - 4], 0xffffffff
mov byte [ebp - 0x15c], 1
mov byte [ebp - 0x15b], 0x5c
mov byte [ebp - 0x15a], 0
mov byte [ebp - 0x159], 8
mov byte [ebp - 0x158], 0x58
mov byte [ebp - 0x157], 0xdb
mov byte [ebp - 0x156], 0xdd
mov byte [ebp - 0x155], 0x4e
mov byte [ebp - 0x154], 0xb8
mov byte [ebp - 0x153], 0x97
mov byte [ebp - 0x152], 0xe6
mov byte [ebp - 0x151], 0x9d
mov byte [ebp - 0x150], 0x98
mov byte [ebp - 0x14f], 0x70
mov byte [ebp - 0x14e], 0x51
mov byte [ebp - 0x14d], 0x6c
mov byte [ebp - 0x14c], 0xc0
mov byte [ebp - 0x14b], 0x7c
mov byte [ebp - 0x14a], 0xca
mov byte [ebp - 0x149], 0x13
mov byte [ebp - 0x148], 0xc1
mov byte [ebp - 0x147], 0xb
mov byte [ebp - 0x146], 0xb5
mov byte [ebp - 0x145], 0x45
mov byte [ebp - 0x144], 0x31
mov byte [ebp - 0x143], 0x6d
mov byte [ebp - 0x142], 0x8f
mov byte [ebp - 0x141], 0xea
mov byte [ebp - 0x140], 0x88
mov byte [ebp - 0x13f], 2
mov byte [ebp - 0x13e], 0x31
mov byte [ebp - 0x13d], 0xe4
mov byte [ebp - 0x13c], 0xb
mov byte [ebp - 0x13b], 0xfd
mov byte [ebp - 0x13a], 0xaf
mov byte [ebp - 0x139], 0x8c
mov byte [ebp - 0x138], 0xa8
mov byte [ebp - 0x137], 0xe4
mov byte [ebp - 0x136], 0xd6
mov byte [ebp - 0x135], 0xce
mov byte [ebp - 0x134], 0xf3
mov byte [ebp - 0x133], 0x29
mov byte [ebp - 0x132], 3
mov byte [ebp - 0x131], 0xa2
mov byte [ebp - 0x130], 0x98
mov byte [ebp - 0x12f], 0xde
mov byte [ebp - 0x12e], 0xef
mov byte [ebp - 0x12d], 0xc1
mov byte [ebp - 0x12c], 0x75
mov byte [ebp - 0x12b], 3
mov byte [ebp - 0x12a], 0x9f
mov byte [ebp - 0x129], 0xe6
mov byte [ebp - 0x128], 0xb5
mov byte [ebp - 0x127], 0xb7
mov byte [ebp - 0x126], 5
mov byte [ebp - 0x125], 0x7e
mov byte [ebp - 0x124], 0x98
mov byte [ebp - 0x123], 0x80
mov byte [ebp - 0x122], 0x93
mov byte [ebp - 0x121], 0x76
mov byte [ebp - 0x120], 0x42
mov byte [ebp - 0x11f], 0xd9
mov byte [ebp - 0x11e], 0xc7
mov byte [ebp - 0x11d], 0x30
mov byte [ebp - 0x11c], 0x44
mov byte [ebp - 0x11b], 0xc0
mov byte [ebp - 0x11a], 0x71
mov byte [ebp - 0x119], 0x3a
mov byte [ebp - 0x118], 0xb1
mov byte [ebp - 0x117], 0xee
mov byte [ebp - 0x116], 0x38
mov byte [ebp - 0x115], 0x52
mov byte [ebp - 0x114], 0x75
mov byte [ebp - 0x113], 0x78
mov byte [ebp - 0x112], 0xa4
mov byte [ebp - 0x111], 0xda
mov byte [ebp - 0x110], 0xc2
mov byte [ebp - 0x10f], 0x88
mov byte [ebp - 0x10e], 0xae
mov byte [ebp - 0x10d], 0x35
mov byte [ebp - 0x10c], 0x41
mov byte [ebp - 0x10b], 0xdf
mov byte [ebp - 0x10a], 0x9c
mov byte [ebp - 0x109], 0x48
mov byte [ebp - 0x108], 0x6c
mov byte [ebp - 0x107], 0x5d
mov byte [ebp - 0x106], 0xa7
mov byte [ebp - 0x105], 0x87
mov byte [ebp - 0x104], 0xab
mov byte [ebp - 0x103], 0x35
mov byte [ebp - 0x102], 0xc1
mov byte [ebp - 0x101], 0x51
mov byte [ebp - 0x100], 0x20
mov byte [ebp - 0xff], 2
mov byte [ebp - 0xfe], 8
xor eax, eax
inc eax
shl eax, 0
movzx eax, byte [ebp + eax - 0x15c]
or eax, 0x30
xor ecx, ecx
inc ecx
shl ecx, 0
movzx ecx, byte [ebp + ecx - 0x15c]
and ecx, 0x30
sub eax, ecx
xor ecx, ecx
inc ecx
imul ecx, ecx, 0
movzx ecx, byte [ebp + ecx - 0x15c]
mov byte [ebp + ecx - 0x38], al
mov dword [ebp - 0x18], 2
and dword [ebp - 0x78], 0
jmp 0x10016fa1
mov eax, dword [ebp - 0x18]
inc eax
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0x5f
jae 0x10017042
xor eax, eax
inc eax
imul eax, eax, 0
movzx eax, byte [ebp + eax - 0x15c]
lea eax, [eax + eax + 2]
cmp dword [ebp - 0x18], eax
jne 0x10016fe8
mov eax, dword [ebp - 0x18]
movzx eax, byte [ebp + eax - 0x15c]
inc eax
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [ebp + eax - 0x15c]
mov ecx, dword [ebp - 0x18]
lea eax, [ecx + eax - 1]
mov dword [ebp - 0x18], eax
jmp 0x10016f99
mov eax, dword [ebp - 0x18]
movzx eax, byte [ebp + eax - 0x15b]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x78]
movzx ecx, byte [ebp + ecx - 0x15e]
movsx ecx, byte [ebp + ecx - 0x38]
or eax, ecx
mov ecx, dword [ebp - 0x18]
movzx ecx, byte [ebp + ecx - 0x15b]
mov edx, dword [ebp - 0x18]
sub edx, dword [ebp - 0x78]
movzx edx, byte [ebp + edx - 0x15e]
movsx edx, byte [ebp + edx - 0x38]
and ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x18]
movzx ecx, byte [ebp + ecx - 0x15c]
mov byte [ebp + ecx - 0x38], al
and dword [ebp - 0x78], 0
jmp 0x10016f99
xor eax, eax
inc eax
imul eax, eax, 3
mov byte [ebp + eax - 0x38], 0
mov dword [ebp - 0x230], 0x1a6d
cmp dword [ebp - 0x230], 0x80e
jge 0x1001752f
lea eax, [ebp - 0x44]
push eax
push 0x100086a8
call fcn.1004a47b
pop ecx
pop ecx
mov dword [ebp - 0x2d8], 0x46d
lea ecx, [ebp - 0x2a4]
call fcn.1000d232
mov dword [ebp - 4], 5
lea edx, [ebp - 0x2a4]
mov ecx, 0x10654250
call fcn.100188a1
xorpd xmm0, xmm0
movlpd qword [ebp - 0x2c0], xmm0
lea eax, [ebp - 0x2c0]
push eax
lea ecx, [ebp - 0x2a4]
call fcn.1000df2c
inc eax
push eax
lea ecx, [ebp - 0x2b0]
call fcn.10018414
mov byte [ebp - 4], 6
xorpd xmm0, xmm0
movlpd qword [ebp - 0x1e4], xmm0
xorpd xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
jmp 0x100170fb
mov eax, dword [ebp - 0x70]
add eax, 1
mov ecx, dword [ebp - 0x6c]
adc ecx, 0
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], ecx
lea ecx, [ebp - 0x2a4]
call fcn.1000df2c
xor ecx, ecx
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x25c], ecx
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x25c]
jg 0x10017187
jl 0x1001712c
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x260]
jae 0x10017187
push dword [ebp - 0x70]
lea ecx, [ebp - 0x2a4]
call fcn.1000f96a
movsx eax, byte [eax]
sub eax, 0x30
cdq
add eax, dword [ebp - 0x1e4]
adc edx, dword [ebp - 0x1e0]
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1e0], edx
mov eax, dword [ebp - 0x70]
add eax, 1
mov ecx, dword [ebp - 0x6c]
adc ecx, 0
push eax
lea ecx, [ebp - 0x2b0]
call fcn.1001843f
mov ecx, dword [ebp - 0x1e4]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x1e0]
mov dword [eax + 4], ecx
jmp 0x100170e9
xorpd xmm0, xmm0
movlpd qword [ebp - 0x2d4], xmm0
lea eax, [ebp - 0x2d4]
push eax
push 0x46d
lea ecx, [ebp - 0x1f4]
call fcn.10018414
mov byte [ebp - 4], 7
mov dword [ebp - 0x50], 1
and dword [ebp - 0x4c], 0
jmp 0x100171cd
mov eax, dword [ebp - 0x50]
add eax, 1
mov ecx, dword [ebp - 0x4c]
adc ecx, 0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0x2a4]
call fcn.1000df2c
xor ecx, ecx
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x288], ecx
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x288]
jg 0x100172f1
jl 0x10017206
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x28c]
ja 0x100172f1
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x84], eax
jmp 0x10017238
mov eax, dword [ebp - 0x88]
add eax, 1
mov ecx, dword [ebp - 0x84]
adc ecx, 0
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], ecx
lea ecx, [ebp - 0x2a4]
call fcn.1000df2c
xor ecx, ecx
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x26c], ecx
mov eax, dword [ebp - 0x84]
cmp eax, dword [ebp - 0x26c]
jg 0x100172ec
jl 0x10017273
mov eax, dword [ebp - 0x88]
cmp eax, dword [ebp - 0x270]
ja 0x100172ec
push dword [ebp - 0x88]
lea ecx, [ebp - 0x2b0]
call fcn.1001843f
mov esi, eax
mov eax, dword [ebp - 0x50]
sub eax, 1
mov ecx, dword [ebp - 0x4c]
sbb ecx, 0
push eax
lea ecx, [ebp - 0x2b0]
call fcn.1001843f
mov ecx, dword [esi]
sub ecx, dword [eax]
mov edx, dword [esi + 4]
sbb edx, dword [eax + 4]
mov dword [ebp - 0x2b8], ecx
mov dword [ebp - 0x2b4], edx
push dword [ebp - 0x2b8]
lea ecx, [ebp - 0x1f4]
call fcn.1001843f
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [eax]
add ecx, 1
mov eax, dword [eax + 4]
adc eax, 0
mov edx, dword [ebp - 0x1e8]
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp 0x1001721a
jmp 0x100171bb
xorpd xmm0, xmm0
movlpd qword [ebp - 0x80], xmm0
cmp dword [ebp - 0x40], 0
jl 0x10017495
jg 0x10017310
cmp dword [ebp - 0x44], 0
jbe 0x10017495
mov dword [ebp - 0x1c], 1
jmp 0x10017320
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x1c]
cdq
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x234], edx
mov eax, dword [ebp - 0x234]
cmp eax, dword [ebp - 0x40]
jg 0x10017493
jl 0x10017354
mov eax, dword [ebp - 0x238]
cmp eax, dword [ebp - 0x44]
ja 0x10017493
lea ecx, [ebp - 0x1f4]
call fcn.10018436
cmp dword [ebp - 0x1c], eax
jae 0x100173bc
mov eax, dword [ebp - 0x1c]
cdq
push edx
push eax
push dword [ebp - 0x40]
push dword [ebp - 0x44]
call fcn.100636b0
mov esi, eax
mov edi, edx
lea ecx, [ebp - 0x1f4]
call fcn.10018436
xor ecx, ecx
mov dword [ebp - 0x240], esi
mov dword [ebp - 0x23c], edi
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x248], ecx
mov eax, dword [ebp - 0x23c]
cmp eax, dword [ebp - 0x248]
jl 0x100173c1
jg 0x100173bc
mov eax, dword [ebp - 0x240]
cmp eax, dword [ebp - 0x24c]
jb 0x100173c1
jmp 0x10017319
mov eax, dword [ebp - 0x1c]
cdq
push edx
push eax
push dword [ebp - 0x40]
push dword [ebp - 0x44]
call fcn.10063760
mov dword [ebp - 0x258], eax
mov dword [ebp - 0x254], edx
mov eax, dword [ebp - 0x258]
or eax, dword [ebp - 0x254]
jne 0x1001748e
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x1c]
cdq
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x264], edx
mov eax, dword [ebp - 0x268]
cmp eax, dword [ebp - 0x44]
jne 0x10017426
mov eax, dword [ebp - 0x264]
cmp eax, dword [ebp - 0x40]
jne 0x10017426
mov dword [ebp - 0x20c], 1
jmp 0x10017430
mov dword [ebp - 0x20c], 2
mov eax, dword [ebp - 0x20c]
cdq
mov esi, eax
mov edi, edx
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x1f4]
call fcn.1001843f
push dword [eax + 4]
push dword [eax]
push edi
push esi
call fcn.10050090
mov esi, eax
mov edi, edx
mov eax, dword [ebp - 0x1c]
cdq
push edx
push eax
push dword [ebp - 0x40]
push dword [ebp - 0x44]
call fcn.100636b0
push eax
lea ecx, [ebp - 0x1f4]
call fcn.1001843f
push dword [eax + 4]
push dword [eax]
push edi
push esi
call fcn.10050090
add eax, dword [ebp - 0x80]
adc edx, dword [ebp - 0x7c]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jmp 0x10017319
jmp 0x100174e6
push 0
lea ecx, [ebp - 0x1f4]
call fcn.1001843f
mov esi, eax
lea ecx, [ebp - 0x2a4]
call fcn.1000df2c
mov edi, eax
lea ecx, [ebp - 0x2a4]
call fcn.1000df2c
inc eax
imul edi, eax
xor ebx, ebx
push 0
lea ecx, [ebp - 0x1f4]
call fcn.1001843f
sub edi, dword [eax]
sbb ebx, dword [eax + 4]
push ebx
push edi
push dword [esi + 4]
push dword [esi]
call fcn.10050090
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
push fcn.10011fcc
push dword [ebp - 0x7c]
push dword [ebp - 0x80]
mov ecx, 0x10654198
call fcn.1001398d
mov ecx, eax
call fcn.1000d598
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1f4]
call fcn.1000e49e
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2b0]
call fcn.1000e49e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2a4]
call fcn.1000d295
mov eax, dword [0x11134f0c]
and eax, 4
jne 0x1001756a
mov eax, dword [0x11134f0c]
or eax, 4
mov dword [0x11134f0c], eax
mov dword [ebp - 4], 8
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x11134f54
call fcn.10018229
push 0x10064e99
call fcn.1004a7e2
pop ecx
or dword [ebp - 4], 0xffffffff
and dword [ebp - 0x5c], 0
jmp 0x10017577
mov eax, dword [ebp - 0x5c]
inc eax
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 4
jae 0x10017587
mov eax, dword [ebp - 0x5c]
mov byte [ebp + eax - 0x38], 0
jmp 0x10017570
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
movsx eax, byte [eax]
movsx ecx, byte [0x11134f50]
cmp eax, ecx
je 0x100175a7
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
jmp 0x1001758d
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
lea ecx, [ebp - 0x2f0]
call fcn.100188c6
mov dword [ebp - 4], 9
push 0x11134f54
lea ecx, [ebp - 0x2f0]
call fcn.10018258
lea eax, [ebp - 0x2c8]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.1000e36d
push dword [eax]
lea eax, [ebp - 0x2c4]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.1000e359
push dword [eax]
lea ecx, [ebp - 0x320]
call fcn.100188ef
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x320]
push eax
call fcn.10014bae
pop ecx
mov dword [ebp - 0x1dc], eax
cmp dword [ebp - 0x1dc], 0
je 0x1001769d
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x308]
call fcn.10018229
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0x284]
lea ecx, [ebp - 0x308]
call fcn.10013fe0
movzx eax, al
test eax, eax
je 0x10017670
push 0
push dword [ebp - 0x284]
push 0
push dword [ebp - 0x1dc]
call fcn.10015f7f
add esp, 0x10
mov dword [ebp - 0x28], eax
jmp 0x1001768c
push 1
push 0
lea eax, [ebp - 0x308]
push eax
push dword [ebp - 0x1dc]
call fcn.10015f7f
add esp, 0x10
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x308]
call fcn.1000d852
jmp 0x100176d0
cmp dword [ebp + 0x10], 0
jne 0x100176b3
mov ecx, dword [ebp + 0xc]
call fcn.1000d29f
mov dword [ebp - 0x200], eax
jmp 0x100176bd
movzx eax, word [ebp + 0x10]
mov dword [ebp - 0x200], eax
push dword [ebp - 0x200]
push dword [ebp + 8]
call fcn.10015936
pop ecx
pop ecx
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x320]
call fcn.1000d73b
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2f0]
call fcn.1000d852
mov eax, dword [ebp - 0x28]
jmp 0x100176f5
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret