Function at 0x100014e0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c4
mov eax, dword [0x10015070]
xor eax, esp
mov dword [esp + 0x2c0], eax
mov eax, dword [ebp + 0xc]
mov dword [0x10016db0], eax
mov eax, dword [ebp + 0x14]
push ebx
xor ebx, ebx
mov dword [0x10016dac], eax
mov eax, dword [ebp + 0x10]
push esi
push edi
lea ecx, [esp + 0x20]
mov dword [esp + 0x44], ebx
mov dword [0x10016da8], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
call fcn.100012d0
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x18], eax
je 0x10001658
mov esi, edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], eax
nop
push 0xffffffffffffffff
push 0
push esi
lea ecx, [esp + 0x118]
mov dword [esp + 0x12c], 0xf
mov dword [esp + 0x128], 0
mov byte [esp + 0x118], 0
call fcn.10002ad0
mov ebx, dword [esp + 0x120]
mov esi, dword [esp + 0x11c]
mov eax, dword [esp + 0x10c]
cmp ebx, 0x10
lea ecx, [esp + 0x10c]
cmovae ecx, dword [esp + 0x10c]
lea edx, [esp + 0x10c]
cmovae edx, dword [esp + 0x10c]
add esi, ecx
cmp ebx, 0x10
lea edi, [esp + 0x10c]
cmovae edi, eax
cmp edi, esi
je 0x10001602
sub edx, edi
mov ebx, edx
lea esp, [esp]
movsx eax, byte [edi]
push eax
call fcn.1000629e
mov byte [ebx + edi], al
inc edi
add esp, 4
cmp edi, esi
jne 0x100015e0
mov ebx, dword [esp + 0x120]
mov eax, dword [esp + 0x10c]
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x10c]
cmp esi, ecx
je 0x1000162d
push 0xffffffffffffffff
mov eax, ecx
push 0
push eax
mov ecx, esi
call fcn.10002ad0
mov ebx, dword [esp + 0x120]
mov eax, dword [esp + 0x10c]
cmp ebx, 0x10
jb 0x1000163b
push eax
call fcn.10003986
add esp, 4
add esi, 0x18
dec dword [esp + 0x14]
mov dword [esp + 0x1c], esi
jne 0x10001560
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov word [esp + 0x1fc], 0x7370
mov word [esp + 0x1f9], 0x6875
mov dword [esp + 0x200], 0x6578652e
mov byte [esp + 0x1f8], 0x71
mov byte [esp + 0x1fb], 0x6c
mov word [esp + 0x1fe], 0x6376
mov byte [esp + 0x204], 0
mov dword [esp + 0x13e], 0x78652e63
mov word [esp + 0x13c], 0x736e
mov word [esp + 0x142], 0x65
mov dword [esp + 0x134], 0x2e76616e
mov dword [esp + 0x138], 0x657865
mov dword [esp + 0x15d], 0x657865
mov dword [esp + 0x159], 0x2e303633
mov byte [esp + 0x158], 0x6e
mov word [esp + 0x127], 0x7865
mov word [esp + 0x124], 0x736e
mov byte [esp + 0x126], 0x2e
mov word [esp + 0x129], 0x65
mov dword [esp + 0x145], 0x652e7369
mov word [esp + 0x149], 0x6578
mov byte [esp + 0x144], 0x6e
mov byte [esp + 0x14b], 0
mov dword [esp + 0x14e], 0x652e7562
mov word [esp + 0x152], 0x6578
mov word [esp + 0x14c], 0x736e
mov byte [esp + 0x154], 0
mov word [esp + 0x262], 0x6573
mov dword [esp + 0x26b], 0x657865
mov dword [esp + 0x25e], 0x6e6f7472
mov dword [esp + 0x267], 0x2e797469
mov word [esp + 0x265], 0x7275
mov word [esp + 0x25c], 0x6f6e
mov byte [esp + 0x264], 0x63
mov dword [esp + 0x1b9], 0x63767363
mov byte [esp + 0x1b8], 0x63
mov word [esp + 0x1be], 0x7473
mov dword [esp + 0x1c1], 0x657865
mov byte [esp + 0x1bd], 0x68
mov byte [esp + 0x1c0], 0x2e
mov word [esp + 0x182], 0x652e
mov dword [esp + 0x17d], 0x72657373
mov word [esp + 0x185], 0x65
mov byte [esp + 0x184], 0x78
mov byte [esp + 0x17c], 0x76
mov byte [esp + 0x181], 0x76
mov dword [esp + 0x194], 0x67616462
mov dword [esp + 0x19a], 0x78652e74
mov word [esp + 0x19e], 0x65
mov word [esp + 0x198], 0x6e65
mov word [esp + 0x1ec], 0x6f72
mov word [esp + 0x1e9], 0x6b76
mov dword [esp + 0x1f0], 0x6578652e
mov byte [esp + 0x1eb], 0x70
mov byte [esp + 0x1f4], 0
mov word [esp + 0x1ee], 0x7978
mov byte [esp + 0x1e8], 0x61
mov dword [esp + 0x1b4], 0x657865
mov dword [esp + 0x1b0], 0x2e796172
mov word [esp + 0x1ad], 0x6b76
mov byte [esp + 0x1ac], 0x61
mov byte [esp + 0x1af], 0x74
mov dword [esp + 0x213], 0x657865
mov dword [esp + 0x208], 0x776b7661
mov dword [esp + 0x20d], 0x36786c74
mov word [esp + 0x211], 0x2e34
mov byte [esp + 0x20c], 0x63
mov dword [esp + 0x27a], 0x79617274
mov word [esp + 0x274], 0x6572
mov word [esp + 0x271], 0x6664
mov dword [esp + 0x276], 0x6c6c6177
mov dword [esp + 0x27f], 0x657865
mov byte [esp + 0x273], 0x69
mov byte [esp + 0x270], 0x67
mov byte [esp + 0x27e], 0x2e
mov dword [esp + 0x219], 0x73776664
mov dword [esp + 0x221], 0x78652e34
mov word [esp + 0x225], 0x65
mov dword [esp + 0x21d], 0x36786376
mov byte [esp + 0x218], 0x67
mov word [esp + 0x24b], 0x6662
xor esi, esi
mov dword [esp + 0x250], 0x32336578
mov dword [esp + 0x255], 0x657865
mov word [esp + 0x248], 0x6467
mov word [esp + 0x24d], 0x746c
mov byte [esp + 0x24f], 0x65
mov byte [esp + 0x24a], 0x6b
mov byte [esp + 0x254], 0x2e
mov dword [esp + 0x18e], 0x6578652e
mov word [esp + 0x18b], 0x6163
mov byte [esp + 0x192], 0
mov word [esp + 0x188], 0x6467
mov byte [esp + 0x18a], 0x73
mov byte [esp + 0x18d], 0x6e
mov dword [esp + 0x1a4], 0x2e6c7463
mov dword [esp + 0x1a0], 0x776b7661
mov dword [esp + 0x1a8], 0x657865
mov dword [esp + 0x130], 0x657865
mov dword [esp + 0x12c], 0x2e707661
mov dword [esp + 0x175], 0x6578652e
mov dword [esp + 0x170], 0x75707661
mov byte [esp + 0x179], 0
mov byte [esp + 0x174], 0x69
mov word [esp + 0x164], 0x736b
mov dword [esp + 0x169], 0x657865
mov word [esp + 0x167], 0x2e65
mov byte [esp + 0x166], 0x64
mov word [esp + 0x2a4], 0x7765
mov word [esp + 0x29d], 0x726f
mov dword [esp + 0x2a7], 0x6f686b72
mov dword [esp + 0x2ac], 0x78652e74
mov byte [esp + 0x2a6], 0x6f
mov word [esp + 0x2b0], 0x65
mov dword [esp + 0x2a0], 0x6d617266
mov byte [esp + 0x2ab], 0x73
mov byte [esp + 0x29f], 0x65
mov byte [esp + 0x29c], 0x63
mov dword [esp + 0x290], 0x6c6c6568
mov word [esp + 0x288], 0x6573
mov dword [esp + 0x295], 0x657865
mov dword [esp + 0x28b], 0x65636976
mov dword [esp + 0x284], 0x65726f63
mov byte [esp + 0x28f], 0x73
mov byte [esp + 0x28a], 0x72
mov byte [esp + 0x294], 0x2e
mov dword [esp + 0x1d0], 0x6578652e
mov word [esp + 0x1c9], 0x7369
mov dword [esp + 0x1cc], 0x746e6761
mov byte [esp + 0x1c8], 0x75
mov byte [esp + 0x1cb], 0x65
mov byte [esp + 0x1d4], 0
mov dword [esp + 0x229], 0x74617769
mov dword [esp + 0x233], 0x657865
mov dword [esp + 0x22f], 0x2e676f64
mov byte [esp + 0x228], 0x75
mov word [esp + 0x22d], 0x6863
mov dword [esp + 0x1d9], 0x6e697769
mov dword [esp + 0x1de], 0x652e7267
mov word [esp + 0x1e2], 0x6578
mov byte [esp + 0x1dd], 0x6d
mov byte [esp + 0x1e4], 0
mov byte [esp + 0x1d8], 0x75
mov dword [esp + 0x23c], 0x64686374
mov dword [esp + 0x242], 0x6578652e
mov word [esp + 0x239], 0x7774
mov byte [esp + 0x246], 0
mov word [esp + 0x240], 0x676f
mov byte [esp + 0x23b], 0x61
mov byte [esp + 0x238], 0x70
mov dword [esp + 0x2b6], 0x61747363
mov word [esp + 0x2c9], 0x6578
mov word [esp + 0x2bd], 0x6f63
mov word [esp + 0x2ba], 0x7574
mov dword [esp + 0x2c4], 0x2e72656c
mov dword [esp + 0x2bf], 0x6f72746e
mov byte [esp + 0x2cb], 0
mov byte [esp + 0x2c8], 0x65
mov byte [esp + 0x2c3], 0x6c
mov word [esp + 0x2b4], 0x7377
mov byte [esp + 0x2bc], 0x73
test eax, eax
je 0x10002470
mov edi, edi
push edi
lea ecx, [esp + 0xf8]
call fcn.10002900
lea eax, [esp + 0x1f8]
push eax
lea ecx, [esp + 0x80]
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
lea ecx, [esp + 0x7c]
mov byte [esp + 0x13], al
call fcn.10002980
cmp byte [esp + 0x13], 0
jne 0x100024e9
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x30]
or ebx, 1
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10001de2
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x50]
or ebx, 2
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10001de2
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x68]
or ebx, 4
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10001de2
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0x98]
or ebx, 8
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10001de2
lea eax, [esp + 0x144]
push eax
lea ecx, [esp + 0xe0]
or ebx, 0x10
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10001de2
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0xb0]
or ebx, 0x20
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10001de2
lea eax, [esp + 0x25c]
push eax
lea ecx, [esp + 0x80]
or ebx, 0x40
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
mov byte [esp + 0x13], 0
test al, al
je 0x10001de7
mov byte [esp + 0x13], 1
test bl, 0x40
je 0x10001df8
lea ecx, [esp + 0x7c]
and ebx, 0xffffffbf
call fcn.10002980
test bl, 0x20
je 0x10001e0c
lea ecx, [esp + 0xac]
and ebx, 0xffffffdf
call fcn.10002980
test bl, 0x10
je 0x10001e20
lea ecx, [esp + 0xdc]
and ebx, 0xffffffef
call fcn.10002980
test bl, 8
je 0x10001e34
lea ecx, [esp + 0x94]
and ebx, 0xfffffff7
call fcn.10002980
test bl, 4
je 0x10001e45
lea ecx, [esp + 0x64]
and ebx, 0xfffffffb
call fcn.10002980
test bl, 2
je 0x10001e56
lea ecx, [esp + 0x4c]
and ebx, 0xfffffffd
call fcn.10002980
test bl, 1
je 0x10001e67
lea ecx, [esp + 0x2c]
and ebx, 0xfffffffe
call fcn.10002980
cmp byte [esp + 0x13], 0
jne 0x100024e9
lea eax, [esp + 0x1b8]
push eax
lea ecx, [esp + 0x30]
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
lea ecx, [esp + 0x2c]
mov byte [esp + 0x13], al
call fcn.10002980
cmp byte [esp + 0x13], 0
jne 0x100024e9
lea eax, [esp + 0x17c]
push eax
lea ecx, [esp + 0x50]
or ebx, 0x80
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10001f00
lea eax, [esp + 0x194]
push eax
lea ecx, [esp + 0x30]
or ebx, 0x100
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
mov byte [esp + 0x13], 0
test al, al
je 0x10001f05
mov byte [esp + 0x13], 1
test ebx, 0x100
je 0x10001f1c
lea ecx, [esp + 0x2c]
and ebx, 0xfffffeff
call fcn.10002980
test bl, bl
jns 0x10001f2f
lea ecx, [esp + 0x4c]
and ebx, 0xffffff7f
call fcn.10002980
cmp byte [esp + 0x13], 0
jne 0x100024e9
lea eax, [esp + 0x1e8]
push eax
lea ecx, [esp + 0xc8]
or ebx, 0x200
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x100020aa
lea eax, [esp + 0x1ac]
push eax
lea ecx, [esp + 0x80]
or ebx, 0x400
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x100020aa
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0xb0]
or ebx, 0x800
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x100020aa
lea eax, [esp + 0x270]
push eax
lea ecx, [esp + 0xe0]
or ebx, 0x1000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x100020aa
lea eax, [esp + 0x218]
push eax
lea ecx, [esp + 0x98]
or ebx, 0x2000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x100020aa
lea eax, [esp + 0x248]
push eax
lea ecx, [esp + 0x68]
or ebx, 0x4000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x100020aa
lea eax, [esp + 0x188]
push eax
lea ecx, [esp + 0x50]
or ebx, 0x8000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x100020aa
lea eax, [esp + 0x1a0]
push eax
lea ecx, [esp + 0x30]
or ebx, 0x10000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
mov byte [esp + 0x13], 0
test al, al
je 0x100020af
mov byte [esp + 0x13], 1
test ebx, 0x10000
je 0x100020c6
lea ecx, [esp + 0x2c]
and ebx, 0xfffeffff
call fcn.10002980
test ebx, 0x8000
je 0x100020dd
lea ecx, [esp + 0x4c]
and ebx, 0xffff7fff
call fcn.10002980
test ebx, 0x4000
je 0x100020f4
lea ecx, [esp + 0x64]
and ebx, 0xffffbfff
call fcn.10002980
test ebx, 0x2000
je 0x1000210e
lea ecx, [esp + 0x94]
and ebx, 0xffffdfff
call fcn.10002980
test ebx, 0x1000
je 0x10002128
lea ecx, [esp + 0xdc]
and ebx, 0xffffefff
call fcn.10002980
test ebx, 0x800
je 0x10002142
lea ecx, [esp + 0xac]
and ebx, 0xfffff7ff
call fcn.10002980
test ebx, 0x400
je 0x10002159
lea ecx, [esp + 0x7c]
and ebx, 0xfffffbff
call fcn.10002980
test ebx, 0x200
je 0x10002173
lea ecx, [esp + 0xc4]
and ebx, 0xfffffdff
call fcn.10002980
cmp byte [esp + 0x13], 0
jne 0x100024d6
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x50]
or ebx, 0x20000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10002201
lea eax, [esp + 0x170]
push eax
lea ecx, [esp + 0x30]
or ebx, 0x40000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10002201
lea eax, [esp + 0x164]
push eax
lea ecx, [esp + 0xc8]
or ebx, 0x80000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
mov byte [esp + 0x13], 0
test al, al
je 0x10002206
mov byte [esp + 0x13], 1
test ebx, 0x80000
je 0x10002220
lea ecx, [esp + 0xc4]
and ebx, 0xfff7ffff
call fcn.10002980
test ebx, 0x40000
je 0x10002237
lea ecx, [esp + 0x2c]
and ebx, 0xfffbffff
call fcn.10002980
test ebx, 0x20000
je 0x1000224e
lea ecx, [esp + 0x4c]
and ebx, 0xfffdffff
call fcn.10002980
cmp byte [esp + 0x13], 0
jne 0x100024d6
lea eax, [esp + 0x29c]
push eax
lea ecx, [esp + 0xb0]
or ebx, 0x100000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10002399
lea eax, [esp + 0x284]
push eax
lea ecx, [esp + 0xe0]
or ebx, 0x200000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10002399
lea eax, [esp + 0x1c8]
push eax
lea ecx, [esp + 0x98]
or ebx, 0x400000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10002399
lea eax, [esp + 0x228]
push eax
lea ecx, [esp + 0x68]
or ebx, 0x800000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10002399
lea eax, [esp + 0x1d8]
push eax
lea ecx, [esp + 0x50]
or ebx, 0x1000000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10002399
lea eax, [esp + 0x238]
push eax
lea ecx, [esp + 0x30]
or ebx, 0x2000000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
test al, al
jne 0x10002399
lea eax, [esp + 0x2b4]
push eax
lea ecx, [esp + 0xc8]
or ebx, 0x4000000
call fcn.10002930
mov edx, eax
lea ecx, [esp + 0xf4]
call fcn.10003380
mov byte [esp + 0x13], 0
test al, al
je 0x1000239e
mov byte [esp + 0x13], 1
test ebx, 0x4000000
je 0x100023b8
lea ecx, [esp + 0xc4]
and ebx, 0xfbffffff
call fcn.10002980
test ebx, 0x2000000
je 0x100023cf
lea ecx, [esp + 0x2c]
and ebx, 0xfdffffff
call fcn.10002980
test ebx, 0x1000000
je 0x100023e6
lea ecx, [esp + 0x4c]
and ebx, 0xfeffffff
call fcn.10002980
test ebx, 0x800000
je 0x100023fd
lea ecx, [esp + 0x64]
and ebx, 0xff7fffff
call fcn.10002980
test ebx, 0x400000
je 0x10002417
lea ecx, [esp + 0x94]
and ebx, 0xffbfffff
call fcn.10002980
test ebx, 0x200000
je 0x10002431
lea ecx, [esp + 0xdc]
and ebx, 0xffdfffff
call fcn.10002980
test ebx, 0x100000
je 0x1000244b
lea ecx, [esp + 0xac]
and ebx, 0xffefffff
call fcn.10002980
lea ecx, [esp + 0xf4]
call fcn.10002980
cmp byte [esp + 0x13], 0
jne 0x100024e2
inc esi
add edi, 0x18
cmp esi, dword [esp + 0x18]
jb 0x10001c70
xor ecx, ecx
call fcn.10001030
mov edi, dword [esp + 0x20]
test edi, edi
je 0x100024c1
mov ebx, dword [esp + 0x24]
mov esi, edi
cmp edi, ebx
je 0x100024b8
lea esp, [esp]
cmp dword [esi + 0x14], 0x10
jb 0x100024a0
push dword [esi]
call fcn.10003986
add esp, 4
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
add esi, 0x18
cmp esi, ebx
jne 0x10002490
push edi
call fcn.10003986
add esp, 4
mov ecx, dword [esp + 0x2cc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1000398b
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0xf4]
call fcn.10002980
mov ecx, 2
jmp 0x10002472
lea ecx, [esp + 0xf4]
call fcn.10002980
mov ecx, 1
jmp 0x10002472