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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x84
mov esi, ecx
mov ecx, dword [esp + 0x9c]
mov ebp, dword [esi + 0x80]
mov dword [esp + 0x18], 0x65607e09
mov dword [esp + 0x1c], 0x3a667d77
mov dword [esp + 0x20], 0x7e666c00
mov dword [esp + 0x24], 0x69793b22
mov dword [esp + 0x28], 0x97b7c68
mov dword [esp + 0x2c], 0x110c040f
mov dword [esp + 0x30], 0x18491f55
mov dword [esp + 0x34], 0x80d010a
mov dword [esp + 0x38], 0xbea4a018
mov word [esp + 0x3c], 0xb3ba
mov dword [esp + 0x3e], 0
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi + 0x18]
lea ebx, [edi - 0x627df953]
and ebx, eax
add eax, edi
add eax, 0x9d8206ad
add ebx, ebx
sub eax, ebx
add al, 0x9f
mov byte [esp + edi + 0x18], al
mov eax, edi
and eax, 1
xor edi, 1
lea edi, [edi + eax*2]
cmp edi, 0x2a
jb 0x409750
mov dword [esp + 0x10], 0xb98488a2
mov byte [esp + 0x14], 0
xor ebx, ebx
xor eax, eax
nop
mov edx, eax
xor dl, 0x1f
add dl, bl
xor dl, byte [esp + eax + 0x10]
add dl, 0x65
mov byte [esp + eax + 0x10], dl
inc eax
add bl, 2
cmp eax, 5
jne 0x409790
mov dword [esp + 0x44], 0x78571d1f
mov dword [esp + 0x48], 0x777d8b7a
mov dword [esp + 0x4c], 0x765e3088
mov dword [esp + 0x50], 0x906f6f8d
mov dword [esp + 0x54], 0x686d976b
mov dword [esp + 0x58], 0x6f36516a
mov dword [esp + 0x5c], 0x22619d65
mov dword [esp + 0x60], 0x52a2506c
mov dword [esp + 0x64], 0x56580b69
mov dword [esp + 0x68], 0x1b655c5b
mov dword [esp + 0x6c], 0x5a56545e
mov dword [esp + 0x70], 0x471e7a1e
mov dword [esp + 0x74], 0x4b414f4b
mov dword [esp + 0x78], 0x764d4447
mov dword [esp + 0x7c], 0x330a
mov byte [esp + 0x80], 0
mov edi, 3
mov ebx, 0xfc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + edi + 0x41]
mov eax, ebx
xor eax, edi
and eax, edx
xor eax, edi
add al, 0xf1
mov byte [esp + edi + 0x41], al
inc edi
dec ebx
cmp edi, 0x40
jne 0x409840
mov edi, dword [esp + 0x98]
add edi, ebp
mov word [esp], 0x7073
mov byte [esp + 2], 0x26
mov word [esp + 3], 0
mov byte [esp + 5], 0
xor edx, edx
nop
nop
nop
nop
mov eax, edx
add al, 0x39
xor al, byte [esp + edx]
add al, 0xe3
mov byte [esp + edx], al
mov eax, edx
and eax, 1
xor edx, 0x99b53221
lea edx, [edx + eax*2]
xor edx, 0x664acde0
add edx, 0x40
cmp edx, 6
jb 0x409880
movzx ebx, byte [esp]
mov edx, edi
test bl, bl
je 0x4098cb
lea eax, [esp + 1]
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x4098c0
mov dword [esp + 8], edi
mov byte [edx], 0
movzx eax, byte [esi + 0x60]
test al, al
je 0x4098eb
lea edi, [esi + 0x61]
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x4098e0
mov byte [edx], 0
movzx eax, byte [esp + 0x44]
test al, al
je 0x40990b
lea edi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x409900
mov byte [edx], 0
movzx eax, byte [ecx]
test al, al
je 0x40992b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409920
mov byte [edx], 0
movzx eax, byte [esp + 0x10]
test al, al
je 0x40994b
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409940
mov byte [edx], 0
movzx eax, byte [esp + 0x18]
test al, al
je 0x40996b
lea ecx, [esp + 0x19]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409960
mov byte [edx], 0
mov eax, dword [esp + 0xa4]
mov ecx, eax
mov ebp, eax
shr ecx, 2
mov ebx, dword [esp + 0xa0]
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebp
and eax, 0xfffffffc
add edx, eax
add eax, ebx
mov ecx, ebp
shr ecx, 1
and ecx, 1
mov ebx, eax
mov edi, edx
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ebx, ebp
mov ecx, ebp
and ecx, 2
add edx, ecx
test bl, 1
mov dword [esp + 0xc], esi
je 0x4099bf
movzx eax, byte [eax + ecx]
mov byte [edx], al
inc edx
mov dword [esp + 0x44], 0xcfc9cdcf
mov byte [esp + 0x48], 0x38
mov dword [esp + 0x49], 0
mov word [esp + 0x4d], 0
mov ecx, 0xad1a964b
mov edi, 0x52e569b4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 0x52e569f9]
lea ebx, [eax + eax]
not ebx
add ebx, eax
mov ebp, ecx
or ebp, eax
not eax
and eax, ebx
or eax, edi
lea ebx, [eax + ebp]
add ebp, eax
add ebp, 0x9e7b1089
mov eax, ebp
xor eax, 0xfffffffe
or ebp, 1
and ebp, eax
mov eax, ebp
and eax, 0xfd
mov esi, ebp
and esi, 2
or ebp, 2
imul ebp, esi
xor esi, 2
imul esi, eax
lea eax, [ebx*2 + 0x3cf62112]
and eax, 2
sub ebx, eax
add ebx, ebp
add ebx, esi
add bl, 0x8a
mov byte [esp + ecx + 0x52e569f9], bl
inc ecx
dec edi
cmp ecx, 0xad1a9656
jne 0x4099f0
mov dword [esp + 0x18], 0xd2d33735
mov byte [esp + 0x1c], 0x3c
mov dword [esp + 0x1d], 0
mov dword [esp + 0x20], 0
lea ecx, [esp + 0x18]
mov edi, 0x629de735
movzx eax, byte [ecx]
mov esi, edi
or esi, eax
lea ebx, [edi - 0x629de700]
and ebx, eax
not esi
or esi, ebx
mov eax, esi
and eax, 0xd
xor esi, 0xd
lea eax, [esi + eax*2]
inc al
mov byte [ecx], al
inc ecx
dec edi
cmp edi, 0x629de729
jne 0x409a80
movzx eax, byte [esp + 0x18]
test al, al
je 0x409add
lea ecx, [esp + 0x19]
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409ad0
jmp 0x409ae5
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov byte [edx], 0
movzx eax, byte [esi + 0x60]
test al, al
je 0x409b0b
lea ecx, [esi + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409b00
mov byte [edx], 0
movzx eax, byte [esp + 0x44]
test al, al
je 0x409b2b
lea ecx, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409b20
mov byte [edx], 0
sub edx, edi
add dword [esi + 0x80], edx
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret 0x10