Function at 0x4098a0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x428836
mov eax, dword fs:[0]
push eax
sub esp, 0x160
mov eax, dword [0x431060]
xor eax, esp
mov dword [esp + 0x158], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x431060]
xor eax, esp
push eax
lea eax, [esp + 0x174]
mov dword fs:[0], eax
mov eax, dword [esp + 0x184]
xor ebx, ebx
lea esi, [esp + 0x14]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ebx
call fcn.00408300
mov eax, dword [esp + 0x14]
test al, 1
jne 0x409902
lea edx, [eax + eax]
jmp 0x409904
xor edx, edx
mov esi, eax
and esi, 0xff00
mov ecx, eax
shl ecx, 0x10
add esi, ecx
mov ecx, eax
shr ecx, 8
shl esi, 8
and ecx, 0xff00
movzx ebp, al
add esi, ecx
shr eax, 0x18
add esi, eax
jmp 0x409930
mov al, bl
add al, 2
movzx ecx, al
rol edx, cl
mov ecx, dword [esp + 0x14]
inc ebx
add edx, ecx
mov eax, edx
and eax, 0xff00
mov edi, edx
shl edi, 0x10
add eax, edi
mov edi, edx
shl eax, 8
shr edx, 0x18
shr edi, 8
and edi, 0xff00
add eax, edi
add eax, edx
xor eax, 0x7ac9127b
add eax, ecx
mov ecx, ebp
ror eax, cl
mov ecx, eax
mov edx, eax
shl edx, 0x10
and ecx, 0xff00
add ecx, edx
mov edx, eax
shr edx, 8
shl ecx, 8
and edx, 0xff00
shr eax, 0x18
add ecx, edx
add ecx, eax
mov eax, esi
xor eax, ecx
xor eax, 0x39ba2d71
cmp ebx, 0x18
mov edx, eax
jle 0x409930
push edx
push 0x42e2dc
xor eax, eax
push 0xffffffffffffffff
lea ecx, [esp + 0x144]
push 0x14
push ecx
mov byte [esp + 0x14c], 0
xor esi, esi
mov dword [esp + 0x14d], eax
mov dword [esp + 0x151], eax
mov dword [esp + 0x155], eax
mov dword [esp + 0x159], eax
mov word [esp + 0x15d], ax
mov byte [esp + 0x15f], al
call fcn.0041640e
add esp, 0x14
mov dword [esp + 0x14], vtable.CLoginData.0
mov dword [esp + 0x17c], esi
lea eax, [esp + 0x138]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], esi
mov byte [esp + 0x20], 0
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x409a20
sub eax, edx
push eax
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x24]
call fcn.004019e0
mov byte [esp + 0x17c], 1
mov al, 0x65
mov byte [esp + 0x150], al
mov byte [esp + 0x152], al
xor eax, eax
lea ebx, [esp + 0x14c]
mov byte [esp + 0x14c], 0x44
mov byte [esp + 0x14d], 0x4e
mov byte [esp + 0x14e], 0x46
mov byte [esp + 0x14f], 0x2e
mov byte [esp + 0x151], 0x78
mov byte [esp + 0x153], 0
mov dword [esp + 0x154], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], eax
call fcn.00403700
mov esi, eax
cmp esi, 0xa
jae 0x409ae0
cmp dword [esp + 0x34], 0x10
jb 0x409ad6
mov eax, dword [esp + 0x20]
push eax
call fcn.004160ce
add esp, 4
mov eax, 0x2bd
jmp 0x40a2b0
mov eax, dword [esp + 0x20]
mov edi, 0x10
cmp dword [esp + 0x34], edi
jae 0x409af3
lea eax, [esp + 0x20]
push eax
call fcn.00416c26
add esp, 4
mov ebp, eax
test edx, edx
jl 0x40a298
jg 0x409b14
cmp ebp, 0x2710
jb 0x40a298
mov ecx, edx
sar ecx, 0x1f
test edx, edx
jne 0x40a298
mov edx, esi
imul edx, edx, 0x17
lea eax, [esi + ebp]
imul esi, esi, 0x36
lea ebx, [edx + ebp + 0x77656afe]
xor eax, 0xacd4617d
imul ebx, eax
sub esi, ebp
imul ebx, esi
push 0xf0
lea ecx, [esp + 0x44]
push 0
push ecx
xor ebx, ebp
call fcn.00417ce0
add esp, 0xc
call fcn.00407a90
mov esi, eax
mov edx, esi
sub edx, ebx
xor edx, ebx
ror edx, 0xb
add edx, ebx
push 0x18e29097
mov dword [esp + 0x40], 0
mov dword [esp + 0x130], edx
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xf6a6e375
mov dword [esp + 0xfc], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x24e94b83
mov dword [esp + 0x110], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x1130e507
mov dword [esp + 0x8c], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xb0bd6dd2
mov dword [esp + 0xd8], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x34e0a803
mov dword [esp + 0x68], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x308e87a6
mov dword [esp + 0xdc], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
mov dword [esp + 0xc8], eax
push 0xb877638b
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x7e31f46e
mov dword [esp + 0xa0], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x420fa546
mov dword [esp + 0x114], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x11334c27
mov dword [esp + 0x12c], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x3b38eca7
mov dword [esp + 0xa4], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xdfd8c90
mov dword [esp + 0x44], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x752f8ae1
mov dword [esp + 0xe4], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xbe2ba515
mov dword [esp + 0x5c], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x82db0f32
mov dword [esp + 0x88], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x1b013af5
mov dword [esp + 0x6c], eax
call fcn.00407b90
sub eax, ebx
add esp, 4
xor eax, ebx
ror eax, 0xb
add eax, ebx
mov dword [esp + 0x94], eax
push 0xb0447f96
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x92da0bc7
mov dword [esp + 0x120], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xb91911ca
mov dword [esp + 0xb8], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x86a27a15
mov dword [esp + 0x124], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x89e85f9e
mov dword [esp + 0x48], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x1b969b3e
mov dword [esp + 0x90], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x5a6d01f2
mov dword [esp + 0x10c], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x6097de6b
mov dword [esp + 0xac], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xd2b81e48
mov dword [esp + 0x104], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xe079428b
mov dword [esp + 0xb4], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xef8c399d
mov dword [esp + 0x64], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x53707b04
mov dword [esp + 0xe8], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x3d834cf9
mov dword [esp + 0xbc], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x631adde4
mov dword [esp + 0xf8], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x6b77b0cd
mov dword [esp + 0x54], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x31b56714
mov dword [esp + 0xd0], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x1919bf6
mov dword [esp + 0x50], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x4ea6ed77
mov dword [esp + 0xb0], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x9bb5fc7b
mov dword [esp + 0x118], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xd1053779
mov dword [esp + 0xd4], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x2c6dc173
mov dword [esp + 0xc4], eax
call fcn.00407b90
add esp, 4
sub eax, ebx
xor eax, ebx
ror eax, 0xb
add eax, ebx
push 0x2ded8b58
mov dword [esp + 0xec], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x30d0f3c8
mov dword [esp + 0x108], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x81af8ee0
mov dword [esp + 0x100], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x64116d34
mov dword [esp + 0xf4], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x78fa760c
mov dword [esp + 0x78], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xe9d83afb
mov dword [esp + 0xf0], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x4bca6ac3
mov dword [esp + 0x84], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x29ab1647
mov dword [esp + 0x40], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xb60ac6bb
mov dword [esp + 0x94], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x2b1af7f0
mov dword [esp + 0x58], eax
call fcn.00407b90
add esp, 4
sub eax, ebx
xor eax, ebx
ror eax, 0xb
add eax, ebx
push 0x79feda82
mov dword [esp + 0x80], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xfb6a12ff
mov dword [esp + 0x9c], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xbc97ad8e
mov dword [esp + 0x74], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x22985d82
mov dword [esp + 0x11c], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x99047131
mov dword [esp + 0xe0], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x2e856c90
mov dword [esp + 0xa8], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x15b249d2
mov dword [esp + 0xc0], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x437998f5
mov dword [esp + 0x60], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0x11065f98
mov dword [esp + 0xc8], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xb2a6793f
mov dword [esp + 0x7c], eax
call fcn.00407b90
sub eax, ebx
add esp, 4
xor eax, ebx
ror eax, 0xb
add eax, ebx
push 0x87bf76fb
mov dword [esp + 0x70], eax
call fcn.00407b90
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
push 0xf3288e88
mov dword [esp + 0x128], eax
call fcn.00407b90
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 0x14]
sub eax, ebx
xor eax, ebx
add esp, 4
ror eax, 0xb
add eax, ebx
mov dword [esp + 0x48], eax
cmp ecx, 0xfc
jb 0x40a232
push 0xffffffffffffffff
push 0xfc
mov ecx, esi
call fcn.00401d40
jmp 0x40a247
mov eax, 0xfc
push 0
sub eax, ecx
mov edi, esi
call fcn.00406a00
mov edi, 0x10
cmp dword [esi + 0x18], edi
jb 0x40a251
mov esi, dword [esi + 4]
jmp 0x40a254
add esi, 4
add ebp, ebx
xor ebp, ebx
add ebp, ebx
xor ebp, ebx
mov dword [esi], ebx
rol ebp, 0xb
xor ebp, 0x7623af19
xor ebx, 0x19acf4e7
add ebp, ebx
mov dword [esi + 4], ebp
lea edi, [esi + 8]
mov ecx, 0x3d
lea esi, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x34], 0x10
jb 0x40a294
mov eax, dword [esp + 0x20]
push eax
call fcn.004160ce
add esp, 4
xor eax, eax
jmp 0x40a2b0
cmp dword [esp + 0x34], edi
jb 0x40a2ab
mov ecx, dword [esp + 0x20]
push ecx
call fcn.004160ce
add esp, 4
mov eax, 0x191
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x158]
xor ecx, esp
call fcn.00415dd3
add esp, 0x16c
ret