Function at 0x409620
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 dword [esp + 4], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp], eax
mov dword [esp + 0x18], 0x3b3c3a4f
mov dword [esp + 0x1c], 0x7e363f29
mov dword [esp + 0x20], 0x22360854
mov dword [esp + 0x24], 0x2f3b654a
mov dword [esp + 0x28], 0x2739382c
mov dword [esp + 0x2c], 0x27203821
mov dword [esp + 0x30], 0x246b1963
mov dword [esp + 0x34], 0xcccf2b32
mov dword [esp + 0x38], 0x727074dc
mov dword [esp + 0x3c], 0x6d72
mov byte [esp + 0x40], 0
mov ecx, 0x22
mov ebp, 0x7239009d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 0xa]
mov ebx, ebp
or ebx, eax
lea edx, [ebp - 0x72390000]
mov esi, edx
and esi, 0xcb
mov edi, ecx
and edi, 0x34
or edi, esi
xor edi, 0x34
or edi, edx
and edi, eax
not ebx
or ebx, edi
add ebx, 0x97c92384
mov eax, ebx
xor eax, 0x6f
and ebx, 0x10
add ebx, ebx
sub ebx, eax
inc bl
mov byte [esp + ecx - 0xa], bl
inc ecx
dec ebp
cmp ecx, 0x4b
jne 0x4096a0
mov dword [esp + 0x10], 0x497c7892
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
xor edi, edi
nop
nop
movzx ebx, byte [esp + edi + 0x10]
mov ebp, edi
and ebp, 1
mov eax, edi
and eax, 2
mov ecx, eax
xor ecx, 2
imul ecx, ebp
or ebp, 2
imul ebp, eax
mov eax, edi
xor eax, 0xf9a7193
add eax, ecx
add eax, ebp
xor eax, ebx
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
add al, 0x20
mov byte [esp + edi + 0x10], al
inc edi
cmp edi, 7
jne 0x409700
mov dword [esp + 0x44], 0x5c093735
mov dword [esp + 0x48], 0x5167595e
mov dword [esp + 0x4c], 0x5e021c54
mov dword [esp + 0x50], 0x2c295553
mov dword [esp + 0x54], 0x2c272d21
mov dword [esp + 0x58], 0x2952732e
mov dword [esp + 0x5c], 0x6a2b2723
mov dword [esp + 0x60], 0xa3e1410
mov dword [esp + 0x64], 0xe3c4967
mov dword [esp + 0x68], 0x456f0831
mov dword [esp + 0x6c], 0x23a383a
mov dword [esp + 0x70], 0x17a6a42
mov dword [esp + 0x74], 0xd3b0501
mov dword [esp + 0x78], 0x5e37003d
mov word [esp + 0x7c], 0x9176
mov dword [esp + 0x7e], 0
xor edi, edi
mov esi, dword [esp + 0x98]
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi + 0x44]
mov eax, 0xd669dbcd
sub eax, edi
or eax, ebx
lea ecx, [edi + 0x32]
not ebx
or ebx, ecx
and ebx, eax
mov ecx, 4
sub ecx, ebx
lea eax, [ebx + 0xfb]
or eax, 1
or ecx, 1
sub eax, ebx
add eax, ecx
add al, 5
mov byte [esp + edi + 0x44], al
add edi, 0xa98c446f
mov eax, edi
and eax, 0x92
xor edi, 0x5673bb92
lea edi, [edi + eax*2]
cmp edi, 0x3e
jb 0x4097d0
add esi, dword [esp]
mov word [esp + 8], 0xd8d7
mov byte [esp + 0xa], 0xea
mov dword [esp + 0xb], 0
xor edx, edx
mov ebp, dword [esp + 4]
nop
nop
nop
nop
movzx eax, byte [esp + edx + 8]
lea ecx, [edx + 0xf6a5827]
and ecx, eax
add eax, edx
add eax, 0xf6a5827
add ecx, ecx
sub eax, ecx
add al, 0x3d
mov byte [esp + edx + 8], al
mov eax, edx
and eax, 1
xor edx, 1
lea edx, [edx + eax*2]
cmp edx, 7
jb 0x409840
movzx ebx, byte [esp + 8]
mov edx, esi
test bl, bl
je 0x40988b
lea edi, [esp + 9]
mov edx, esi
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409880
mov byte [edx], 0
movzx ebx, byte [ebp + 0x60]
test bl, bl
mov eax, dword [esp + 0x9c]
je 0x4098ab
lea edi, [ebp + 0x61]
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x4098a0
mov byte [edx], 0
movzx ebx, byte [esp + 0x44]
test bl, bl
je 0x4098cb
lea edi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x4098c0
mov byte [edx], 0
movzx ebx, byte [eax]
test bl, bl
je 0x4098eb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x4098e0
mov byte [edx], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x40990b
lea edi, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409900
mov byte [edx], 0
movzx ecx, byte [esp + 0x18]
test cl, cl
mov dword [esp], esi
je 0x40992b
lea edi, [esp + 0x19]
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409920
mov byte [edx], 0
mov ebp, dword [esp + 0xa4]
mov ecx, ebp
shr ecx, 2
mov esi, dword [esp + 0xa0]
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ebx, ebp
and ebx, 0xfffffffc
add edx, ebx
add ebx, esi
mov ecx, ebp
and ecx, 3
mov eax, ebp
not eax
or eax, 0xfffffffe
add eax, ecx
inc eax
shr ecx, 1
mov esi, ebx
mov edi, edx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
add edx, eax
mov ecx, ebp
test cl, 1
je 0x40997e
movzx eax, byte [ebx + eax]
mov byte [edx], al
inc edx
mov ebx, dword [esp + 4]
mov dword [esp + 0x18], 0xe1e3efed
mov byte [esp + 0x1c], 0xf4
mov word [esp + 0x1d], 0
mov byte [esp + 0x1f], 0
xor ecx, ecx
nop
nop
nop
mov esi, ecx
and esi, 2
xor esi, 0x2a
mov eax, ecx
and eax, 5
sub eax, esi
xor al, byte [esp + ecx + 0x18]
add al, 0xd2
mov byte [esp + ecx + 0x18], al
inc ecx
cmp ecx, 8
jne 0x4099a0
mov dword [esp + 0x44], 0x8e81e5e3
mov byte [esp + 0x48], 0xf0
mov dword [esp + 0x49], 0
mov dword [esp + 0x4c], 0
xor ecx, ecx
nop
nop
movzx eax, byte [esp + ecx + 0x44]
lea esi, [ecx + 0x376d35d5]
and esi, eax
add esi, esi
neg esi
add esi, ecx
add esi, 0x376d35d5
add esi, eax
mov eax, 1
sub eax, esi
mov edi, 0x29
sub edi, esi
and esi, 1
and eax, 1
and edi, 0xfe
or edi, eax
xor edi, 0xfe
lea eax, [edi + esi*2]
mov byte [esp + ecx + 0x44], al
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
cmp ecx, 0xc
jb 0x4099e0
movzx ecx, byte [esp + 0x44]
test cl, cl
je 0x409a5d
lea edi, [esp + 0x45]
mov eax, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409a50
jmp 0x409a60
mov eax, dword [esp]
mov byte [edx], 0
movzx ecx, byte [ebx + 0x60]
test cl, cl
je 0x409a7b
lea edi, [ebx + 0x61]
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409a70
mov byte [edx], 0
movzx ecx, byte [esp + 0x18]
test cl, cl
je 0x409a9b
lea edi, [esp + 0x19]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409a90
mov byte [edx], 0
sub edx, eax
add dword [ebx + 0x80], edx
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret 0x10