Function at 0x409230
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x70
mov edi, dword [esp + 0x88]
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x10], 0x40101fe
mov dword [esp + 0x14], 0xc9070c14
mov dword [esp + 0x18], 0x2d073fe1
mov dword [esp + 0x1c], 0x382aeac3
mov dword [esp + 0x20], 0x382c2f39
mov dword [esp + 0x24], 0x303d273c
mov dword [esp + 0x28], 0x27fa0efa
mov dword [esp + 0x2c], 0x3f3e203b
mov dword [esp + 0x30], 0x8d858329
mov word [esp + 0x34], 0x928b
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x10]
mov ebp, 0xea
sub ebp, ecx
or ebp, ebx
lea esi, [ecx + 0x15]
lea edx, [ebx + ebx]
not edx
add edx, ebx
or edx, esi
and edx, ebp
mov bl, 0x57
sub bl, dl
mov byte [esp + ecx + 0x10], bl
mov edx, 0x3b
sub edx, ecx
add ecx, 0xc4
and edx, 0xc3
and ecx, 0x13c
sub ecx, edx
cmp ecx, 0x26
jb 0x4092a0
mov dword [esp + 4], 0xe4f9ffc3
mov ecx, 0x4dd707a9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x4dd707a5]
mov edx, ecx
and edx, ebx
add edx, edx
sub ebx, edx
add ebx, ecx
mov edx, ebx
or edx, 0xb6
and ebx, 0xb6
add ebx, edx
add bl, 2
mov byte [esp + ecx - 0x4dd707a5], bl
inc ecx
cmp ecx, 0x4dd707ad
jne 0x409300
mov dword [esp + 0x36], 0x83b8e0e4
mov dword [esp + 0x3a], 0x8e9a8a83
mov dword [esp + 0x3e], 0x8db7cf85
mov dword [esp + 0x42], 0x7b888686
mov dword [esp + 0x46], 0x73727e70
mov dword [esp + 0x4a], 0x662f4473
mov dword [esp + 0x4e], 0x397e707e
mov dword [esp + 0x52], 0x79736761
mov dword [esp + 0x56], 0x7d653a52
mov dword [esp + 0x5a], 0x32527b60
mov dword [esp + 0x5e], 0x716f6b77
mov dword [esp + 0x62], 0x4e375d37
mov dword [esp + 0x66], 0x524e5650
mov dword [esp + 0x6a], 0x6d4a534c
mov word [esp + 0x6e], 0x2203
xor ecx, ecx
nop
nop
movzx ebp, byte [esp + ecx + 0x36]
lea ebx, [ecx + 0x294c0671]
mov edx, 0x56b3f98e
sub edx, ecx
and edx, 0x4030d9ba
mov esi, ebx
and esi, 0x245
or esi, edx
xor esi, ebp
xor esi, 0xba
lea edx, [ecx + 0x71]
and edx, ebp
or edx, esi
and ebx, ebp
sub edx, ebx
add dl, 0x78
mov byte [esp + ecx + 0x36], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 0x3a
jb 0x4093b0
mov esi, dword [esp + 0x84]
add esi, eax
mov word [esp + 1], 0x9495
mov byte [esp + 3], 0xba
mov ebp, pe_nt_image_headers32
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebp - 0x77]
mov ebx, edx
and ebx, ebp
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x79
mul cl
mov ecx, eax
add cl, dl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, ebp
add al, 0x40
mov byte [esp + ebp - 0x77], al
inc ebp
cmp ebp, 0x7b
jne 0x409420
movzx ecx, byte [esp + 1]
mov eax, esi
test cl, cl
je 0x40947b
lea ebx, [esp + 2]
mov eax, esi
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x409470
mov byte [eax], 0
mov edx, dword [esp + 8]
movzx ecx, byte [edx + 0x60]
test cl, cl
je 0x40949b
lea ebx, [edx + 0x61]
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x409490
mov byte [eax], 0
movzx ecx, byte [esp + 0x36]
test cl, cl
je 0x4094bb
lea ebx, [esp + 0x37]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x4094b0
mov byte [eax], 0
movzx ecx, byte [edi]
test cl, cl
je 0x4094db
inc edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x4094d0
mov byte [eax], 0
movzx ecx, byte [esp + 4]
test cl, cl
je 0x4094fb
lea edi, [esp + 5]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x4094f0
mov byte [eax], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
mov dword [esp + 0xc], esi
je 0x40951b
lea edi, [esp + 0x11]
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409510
mov byte [eax], 0
mov ebx, dword [esp + 0x90]
mov ecx, ebx
shr ecx, 2
mov esi, dword [esp + 0x8c]
mov edx, esi
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ebp, ebx
and ebp, 0xfffffffc
add eax, ebp
add ebp, esi
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov edx, ebp
mov edi, eax
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, ebx
and ecx, 2
add eax, ecx
test bl, 1
je 0x40956a
movzx ecx, byte [ebp + ecx]
mov byte [eax], cl
inc eax
mov dword [esp + 0x36], 0x787c7a72
mov byte [esp + 0x3a], 3
mov ecx, 0xff190bb7
mov edi, 0x66f448
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + ecx + 0xe6f47f]
mov ebx, ebp
and ebx, 0x19
xor ebx, 0x4b698d19
mov edx, ebp
xor edx, 0x4b698d19
or ebp, 0xe6
and ebp, edx
mov edx, edi
and edx, 0x608409
mov esi, ecx
and esi, 0xb41002a6
or esi, edx
add ebx, ebp
and ebp, 0x19
sub ebx, ebp
xor ebx, esi
mov edx, ebx
and edx, 0x47
xor ebx, 0x47
lea edx, [ebx + edx*2]
inc dl
mov byte [esp + ecx + 0xe6f47f], dl
inc ecx
dec edi
cmp ecx, 0xff190bbc
jne 0x409590
mov dword [esp + 0x10], 0xd8d9f9ff
mov byte [esp + 0x14], 0xf6
mov ecx, 0x3fa0f2e2
mov edi, 0xc05f0d1d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x3fa0f2d2]
mov edx, edi
or edx, ebx
lea ebp, [edi + 0x3fa0f300]
and ebp, ebx
xor ebp, edx
and ebp, ecx
mov edx, ebp
and edx, 2
mov esi, ebp
or ebp, 2
imul ebp, edx
xor edx, 2
and esi, 0xed
imul esi, edx
add ebp, esi
mov edx, ebp
not edx
and edx, ecx
and ebp, edi
sub edx, ebp
add edx, ebx
mov esi, edx
and esi, 0x6f
xor edx, 0xef
lea edx, [edx + esi*2]
inc dl
mov byte [esp + ecx - 0x3fa0f2d2], dl
inc ecx
dec edi
cmp ecx, 0x3fa0f2e7
jne 0x409610
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x40969d
lea edi, [esp + 0x11]
mov edx, dword [esp + 8]
mov esi, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409690
jmp 0x4096a5
mov edx, dword [esp + 8]
mov esi, dword [esp + 0xc]
mov byte [eax], 0
movzx ecx, byte [edx + 0x60]
test cl, cl
je 0x4096cb
lea edi, [edx + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x4096c0
mov byte [eax], 0
movzx ecx, byte [esp + 0x36]
test cl, cl
je 0x4096eb
lea edi, [esp + 0x37]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x4096e0
mov byte [eax], 0
sub eax, esi
add dword [edx + 0x80], eax
add esp, 0x70
pop esi
pop edi
pop ebx
pop ebp
ret 0x10