Function at 0x401e10
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x407a3c
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x538
mov eax, dword [0x40f040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
push str.9e8777661a1ad9c983f03060f0a04a3244daac8c3639b3eb1bbce29355bc6c10
lea ecx, [ebp - 0x548]
movq qword [ebp - 0x20], xmm0
call fcn.00404cc0
push str.8d98f68f07edbafcff17835012573f76c46efbeb3b7e4f0c536600f202e89fa9
lea ecx, [ebp - 0x530]
mov dword [ebp - 4], 0
call fcn.00404cc0
push str.57cfa4cbf3d6cbd13973bbf0625bfa6d20677abb0a6e6bec9a6bf587799b56fa
lea ecx, [ebp - 0x518]
mov byte [ebp - 4], 1
call fcn.00404cc0
push str.b2e1f5aedb049092135e90c153f5bd386aa81cd2df355d90912dcba33c3176e5
lea ecx, [ebp - 0x500]
mov byte [ebp - 4], 2
call fcn.00404cc0
push str.db52f4b7c4a7cf667f1fb5334dc47e9cc11501b34a9bf82ab424eb9bbb0e1016
lea ecx, [ebp - 0x4e8]
mov byte [ebp - 4], 3
call fcn.00404cc0
push str.ed80408eb9092301e628791e7a9a2e86c6f496a9afd7b56d7c1a1684b1b87251
lea ecx, [ebp - 0x4d0]
mov byte [ebp - 4], 4
call fcn.00404cc0
push str.672defc4b21aa5e63f856729f11cf37fc7bb872788b9b10c8e478243776cbab0
lea ecx, [ebp - 0x4b8]
mov byte [ebp - 4], 5
call fcn.00404cc0
push str.822763472ec3ef67da83494fb7f5a1f4f06fc9311a1c41f5ec464a417790506a
lea ecx, [ebp - 0x4a0]
mov byte [ebp - 4], 6
call fcn.00404cc0
push str.446b20e2eebc4368d552b4b15f0f123f59239092a9b1671fe45c9cbe3ced6f55
lea ecx, [ebp - 0x488]
mov byte [ebp - 4], 7
call fcn.00404cc0
push str.199b559dd796f7cd526cb208afe43888de0888e380f8355b50da9a699f9fa152
lea ecx, [ebp - 0x470]
mov byte [ebp - 4], 8
call fcn.00404cc0
push str.713b6f4c6cafe3556a99d9ac5e38427b903a0bbddb1aaf7e63a32e0bf30b0a48
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 9
call fcn.00404cc0
push str.31accf0b66e24aa79609cf03ec15b7d9e2b18298be7489ea3e7cbc479c1ecf2d
lea ecx, [ebp - 0x440]
mov byte [ebp - 4], 0xa
call fcn.00404cc0
push str.4c357a29b202b77e7db190d359ead2dfd3f8869c6808b96bfa8bee82525bb2a2
lea ecx, [ebp - 0x428]
mov byte [ebp - 4], 0xb
call fcn.00404cc0
push str.d51ce268a585657226510586e47c58a47cee2f2bf2049008760c58dc4e6ba650
lea ecx, [ebp - 0x410]
mov byte [ebp - 4], 0xc
call fcn.00404cc0
push str.a5a5b6257304eefe5212edfd8c0ad27f77357c5046a7acb8eb7ba72ed4bad9e0
lea ecx, [ebp - 0x3f8]
mov byte [ebp - 4], 0xd
call fcn.00404cc0
push str.f16aab895360879c93976d8dade374d48aecd1646905c77217b2598ffeff831a
lea ecx, [ebp - 0x3e0]
mov byte [ebp - 4], 0xe
call fcn.00404cc0
push str.e0051072da214b5237b6f2bce31080f9245998a19381afa20169c863ecbcc442
lea ecx, [ebp - 0x3c8]
mov byte [ebp - 4], 0xf
call fcn.00404cc0
push str.8fd4ca424438a8dabc4bd3594450fa350e427e3b25e3b0ff731dba7bc0e5ef5c
lea ecx, [ebp - 0x3b0]
mov byte [ebp - 4], 0x10
call fcn.00404cc0
push str.d8f291a459c1acc53f9c8dccb1049bfe2d3b00c7a86d50542dc7fd7b0628ea6a
lea ecx, [ebp - 0x398]
mov byte [ebp - 4], 0x11
call fcn.00404cc0
push str.ac66c2d47cdefb221822b9074c9810434e8da702a0694139aa9177557e6b292b
lea ecx, [ebp - 0x380]
mov byte [ebp - 4], 0x12
call fcn.00404cc0
push str.e9405382dd919c456e564c1b14ba5b0b83e2633fd98c4567f23a7887c6c261ee
lea ecx, [ebp - 0x368]
mov byte [ebp - 4], 0x13
call fcn.00404cc0
push str.d2944222d84e9655d3849c190340d2c6ee78b522d6fd654409ac6dc495b6f31c
lea ecx, [ebp - 0x350]
mov byte [ebp - 4], 0x14
call fcn.00404cc0
push str.6f4bc77e28bcabcf51f4bbc10a64b288216495fbd40a58b5926a07a8357cf17a
lea ecx, [ebp - 0x338]
mov byte [ebp - 4], 0x15
call fcn.00404cc0
push str.6d1a9dd31c444208c02e4ff7703091789c7f638bf572f9fa6fa0e2acb3966dea
lea ecx, [ebp - 0x320]
mov byte [ebp - 4], 0x16
call fcn.00404cc0
push str.1ba0b25be4dd0bfb7a667b095d20d11a0bdd648034e26759061792bc127c456f
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 0x17
call fcn.00404cc0
push str.edd772c1586e0bac9fbe091b44d613a1720999ec0595b66d594cf25f8eabe8eb
lea ecx, [ebp - 0x2f0]
mov byte [ebp - 4], 0x18
call fcn.00404cc0
push str.709d11fd4108cfbb7340da05472ac04c2d4c6668b8c908b5cf7bc6e66f0314d9
lea ecx, [ebp - 0x2d8]
mov byte [ebp - 4], 0x19
call fcn.00404cc0
push str.1504c80223c8e599ad5aa10f8ca6477c06226505a5ec421dc5c828f2145d9b3f
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 0x1a
call fcn.00404cc0
push str.d65173b9dfcd6c47c9a2db2cbef535ba5c098464677e1248d0d6811f00975ac4
lea ecx, [ebp - 0x2a8]
mov byte [ebp - 4], 0x1b
call fcn.00404cc0
push str.1c3e43348a5661230827e5429727702cf0a915f3cfb06550b6721f87d57ac988
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 0x1c
call fcn.00404cc0
push str.92975b1aab7b90dab21e66c829636a4c8e449a65fcdbfeb8045ee7d5a815a18a
lea ecx, [ebp - 0x278]
mov byte [ebp - 4], 0x1d
call fcn.00404cc0
push str.6dbf77db7e0e29f1c2110e74e7e09f7512928e48320694aa03cf240752468eab
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 0x1e
call fcn.00404cc0
push str.e063358d88290c5d05d58594da341690024cf7fa57408a3874899f10e56d8bc8
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 0x1f
call fcn.00404cc0
push str.6acebbd6307ff789d29f328f6baa245c8b1908da0f0851568145e09f71074aab
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0x20
call fcn.00404cc0
push str.bfbf8ac995e515fd814981d888a641916c2b3c2f4047c8711a5da49e4ef7daff
lea ecx, [ebp - 0x218]
mov byte [ebp - 4], 0x21
call fcn.00404cc0
push str.b0abffe073e2e97943d4f1f7fb2fcca36ecfcde3712fd8012489e258e4daa16c
lea ecx, [ebp - 0x200]
mov byte [ebp - 4], 0x22
call fcn.00404cc0
push str.eb50c17abd626c450ec7ac5824a1f2c951251bf64aa8a1250bf4c0326a62726e
lea ecx, [ebp - 0x1e8]
mov byte [ebp - 4], 0x23
call fcn.00404cc0
push str.e97dfb663763f80e4c795361c08822e461596cb24d75fd8bf9d27beff0621125
lea ecx, [ebp - 0x1d0]
mov byte [ebp - 4], 0x24
call fcn.00404cc0
push str.5458178edf976103cbd9c91d5de36d725d7d24bd5ed5156989913df093e5b935
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x25
call fcn.00404cc0
push str.f76a9da3d5b08c150c444e76b23882ceedc8010037c7a2a289f71c55ce0be5c2
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 4], 0x26
call fcn.00404cc0
push str.ad7b05e7353516ffc0b3fbc69ed501512cff1bd425ac99f2c491b0c42fe0c50c
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x27
call fcn.00404cc0
push str.1ada14575275d4f64dd9e4025c719af4d04a584d4763f2768e044214fa5bdc20
lea ecx, [ebp - 0x170]
mov byte [ebp - 4], 0x28
call fcn.00404cc0
push str.e81bbd4ae530e079b91f7c49fefc7d4ba0bb1bbcc67ce82a6360610e7e281f9c
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x29
call fcn.00404cc0
push str.53205c9a916e87f51b57baf80744589aceb8ec8c80ddcd3acf6636fdcf4e8ec7
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 0x2a
call fcn.00404cc0
push str.57fcc8e83fc208d68f4280afa31a63978e0932ad594ea19586512dff1dca4a19
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 0x2b
call fcn.00404cc0
push str.0256dc0d083c5822a5b282a47ece1b76e2abb2b1332b5cd9b062fcfcfd0804ef
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 0x2c
call fcn.00404cc0
push str.57445680edb3b7c70d8e8b50664f42f6d7939a4886b341ccaac31827f1551d62
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 0x2d
call fcn.00404cc0
push str.713b6f4c6cafe3556a99d9ac5e38427b903a0bbddb1aaf7e63a32e0bf30b0a48
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 0x2e
call fcn.00404cc0
mov byte [ebp - 4], 0x2f
push str.8fd4ca424438a8dabc4bd3594450fa350e427e3b25e3b0ff731dba7bc0e5ef5c
lea ecx, [ebp - 0xc8]
call fcn.00404cc0
push str.ac6466b84ce55147f40ba2cdd767149dee8a4d5294ffbc492a729566f1d64ec7
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x30
call fcn.00404cc0
push str.2869dd069a5ed30d25a5fd1eba613ee53b2f0ac971f00a5c6201803049e54182
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x31
call fcn.00404cc0
push str.e063358d88290c5d05d58594da341690024cf7fa57408a3874899f10e56d8bc8
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x32
call fcn.00404cc0
push str.fa78741d274b64bac6b5aa7bd6b91b91212604a520e3d56dbad249e2fc187d7c
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x33
call fcn.00404cc0
lea ecx, [ebp - 0x548]
mov dword [ebp - 4], 0x34
push ecx
lea eax, [ebp - 0x50]
push eax
push ecx
lea ecx, [ebp - 0x20]
call fcn.00404400
push 0x404c60
push 0x35
push 0x18
lea eax, [ebp - 0x548]
mov byte [ebp - 4], 0x36
push eax
call fcn.004066cc
xorps xmm0, xmm0
lea ecx, [ebp - 0x40]
movups xmmword [ebp - 0x40], xmm0
movups xmmword [ebp - 0x30], xmm0
call fcn.00401c00
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x48], esi
cmp esi, dword [ebp - 0x1c]
je 0x40232f
nop
cmp dword [esi + 0x14], 7
mov dword [ebp - 0x44], esi
jbe 0x4022de
mov eax, dword [esi]
mov dword [ebp - 0x44], eax
mov edi, dword [esi + 0x10]
mov edx, 0x811c9dc5
mov eax, 0
add edi, edi
je 0x402306
mov esi, dword [ebp - 0x44]
movzx ecx, byte [esi + eax]
inc eax
xor ecx, edx
imul edx, ecx, 0x1000193
cmp eax, edi
jb 0x4022f2
mov esi, dword [ebp - 0x48]
push edx
push esi
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x40]
call fcn.004064c0
mov ecx, dword [ebp - 0x3c]
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, dword [ebp - 0x3c]
jne 0x402361
add esi, 0x18
mov dword [ebp - 0x48], esi
cmp esi, dword [ebp - 0x1c]
jne 0x4022d0
xor esi, esi
lea ecx, [ebp - 0x40]
call fcn.00403800
lea ecx, [ebp - 0x20]
call fcn.00405460
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0040668e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov esi, 1
jmp 0x402331