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

Disassembly:
sub esp, 0xb4
push ebx
push ebp
push esi
push edi
push 0x2e
pop eax
mov ebp, ecx
mov word [esp + 0x54], ax
xor eax, eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], ebp
xor ecx, ecx
mov word [esp + 0x56], ax
mov word [esp + 0x14], 0x8e8e
movzx eax, byte [esp + ecx + 0x14]
mov edx, 0xff
sub ax, 0x60
and ax, dx
mov word [esp + ecx*2 + 0x70], ax
inc ecx
cmp ecx, 2
jl 0x41405f
xor eax, eax
mov ecx, 0x5e82
xor cx, word [0x42c8a0]
mov edx, 0xd35b
mov word [esp + 0x74], ax
mov eax, 0x7f4a
movzx ecx, cx
imul ecx, eax
lea eax, [esp + 0x54]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x7c], eax
movzx eax, byte [0x42c905]
and ax, dx
mov edx, 0x1f0c
add ax, dx
xor ebx, ebx
mov word [0x42c914], ax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x38], 0xc7e8f7be
xor edx, edx
mov dword [esp + 0x3c], 0xc7e8f7be
mov dword [esp + 0x40], 0xfaf8f4d7
mov dword [esp + 0x44], 0xefc8bbf7
mov word [esp + 0x48], 0xeffa
mov byte [esp + 0x4a], 0xfe
mov al, byte [esp + edx + 0x38]
xor al, 0x9b
movzx eax, al
mov word [esp + edx*2 + 0x98], ax
inc edx
cmp edx, 0x13
jl 0x4140fa
push dword [esp + ebx*4 + 0x78]
xor eax, eax
mov word [esp + 0xc2], ax
mov eax, 0xde2
sub cx, ax
mov eax, 0x19aa
and cx, ax
mov eax, 0x6bdf
add ax, word [0x42c914]
mov word [0x42c90c], ax
lea eax, [esp + 0x9c]
push ebp
push eax
mov word [0x42c8a0], cx
call fcn.004233ac
movzx edx, byte [0x42c905]
mov ebp, eax
mov ax, word [0x42c914]
mov ecx, 0x7276
add ax, cx
mov dword [esp + 0x5c], ebp
mov esi, 0x4723
mov word [0x42c8a0], ax
or dx, si
add eax, 0xfffffd82
add esp, 0xc
movzx esi, ax
mov word [0x42c914], ax
mov cx, dx
test ebp, ebp
je 0x4146ec
imul eax, esi, 0xbe1
mov ecx, 0x763f
mov esi, dword [esp + 0x50]
xor edi, edi
and dword [esp + 0x1c], edi
xor ebp, ebp
and dword [esp + 0x24], edi
mov dword [esp + 0x18], ebp
mov word [0x42c914], ax
mov eax, edx
and eax, 0xf3
mov dword [esp + 0x4c], edi
imul eax, eax, 0x2deb
and edx, 0xc30
or edx, 0xe088
sub edx, 0x529
and edx, 0x3f28
add edx, 0x1ff8
sub ecx, eax
or edx, 0x78a2
movzx ecx, cx
mov al, cl
mov word [0x42c8a0], dx
sub al, 0x6e
lea edx, [esp + 0x1c]
mov byte [0x42c905], al
lea eax, [ecx - 0x2b98]
mov ecx, esi
mov word [0x42c90c], ax
lea eax, [esp + 0x24]
push eax
call fcn.004239d1
pop ecx
test al, al
je 0x41445b
mov dx, word [0x42c914]
mov eax, 0x766c
or ax, dx
mov byte [esp + 0x14], 0
mov word [0x42c8a0], ax
xor ebx, ebx
mov eax, dword [esp + 0x24]
add eax, 0xfffffff2
mov dword [esp + 0x60], eax
je 0x414441
mov edi, dword [esp + 0x1c]
push 0x10
pop ebp
sub ebp, edi
mov dword [esp + 0x28], 0x7e6f7a71
mov dword [esp + 0x2c], 0x71807c85
mov dword [esp + 0x30], 0x71776b70
mov byte [esp + 0x34], 0x85
mov dword [esp + 0x24], ebp
xor ecx, ecx
mov al, byte [esp + ecx + 0x28]
sub al, 0xc
mov byte [esp + ecx + 0x88], al
inc ecx
cmp ecx, 0xd
jl 0x414288
mov ecx, 0x8560
mov byte [esp + 0x95], 0
mov ax, dx
and ax, cx
mov cl, al
add eax, 0x607c
or cl, 0x48
xor eax, 0xb031
cmp byte [esp + 0x14], 0
mov byte [0x42c905], cl
mov word [0x42c914], ax
jne 0x41441f
movzx eax, cl
mov ecx, 0x5ae9
sub ax, cx
mov word [0x42c8a0], ax
add eax, 0xffffe304
mov word [0x42c90c], ax
lea eax, [esp + 0x88]
push 0xd
push eax
push edi
call fcn.004022e4
add esp, 0xc
test eax, eax
jne 0x41440b
mov eax, 0x180d
add ebp, edi
add ax, word [0x42c914]
mov esi, ebp
mov word [0x42c8a0], ax
mov al, byte [0x42c905]
and al, 0xad
sub esi, ebx
mov cl, al
mov edx, 0x8be
movzx eax, al
and ax, dx
movzx edx, ax
mov al, cl
sub al, 0x15
cmp byte [edi + esi], 0x22
mov byte [0x42c905], al
jne 0x414398
imul eax, edx, 0x251b
push esi
sub eax, 0x75d6
mov word [0x42c90c], ax
lea eax, [edx - 0x58ce]
mov word [0x42c914], ax
call fcn.0040570b
movzx edx, word [0x42c90c]
pop ecx
mov ecx, 0xafcb
mov dword [esp + 0x18], eax
imul edx, ecx
movzx ecx, dl
mov word [0x42c8a0], dx
mov edx, dword [esp + 0x18]
imul eax, ecx, 0xd7
test edx, edx
jne 0x41439b
inc esi
jmp 0x41432a
movzx ecx, al
add esi, 0xfffffff0
mov eax, 0x757c
mov dword [esp + 0x4c], esi
or cx, ax
movzx eax, cl
imul eax, eax, 0xf0
push esi
mov word [0x42c914], cx
mov byte [0x42c905], al
mov eax, ecx
xor eax, 0x71ec
mov word [0x42c90c], ax
lea eax, [ecx - 0x7b36]
mov word [0x42c8a0], ax
mov eax, dword [esp + 0x20]
add eax, ebp
push eax
push edx
call fcn.00401d70
movzx ecx, word [0x42c8a0]
mov eax, 0x363a
mov ebp, dword [esp + 0x30]
add esp, 0xc
imul ecx, eax
mov byte [esp + 0x14], 1
mov word [0x42c90c], cx
inc ebx
inc edi
cmp ebx, dword [esp + 0x60]
jae 0x414435
mov dx, word [0x42c914]
jmp 0x414286
movzx ecx, word [0x42c90c]
mov eax, 0x2084
imul ecx, eax
mov word [0x42c8a0], cx
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x18]
mov al, byte [0x42c90c]
push dword [esp + 0x1c]
xor al, 0xb0
mov byte [0x42c905], al
call fcn.004056f0
mov ebx, dword [esp + 0x24]
pop ecx
mov eax, 0x2c31
or ax, word [0x42c914]
push esi
mov word [0x42c90c], ax
call fcn.004056f0
pop ecx
mov cx, word [0x42c90c]
mov eax, 0x8c42
movzx edx, cx
imul edx, eax
mov eax, 0x1b2d
or ax, cx
mov word [0x42c914], ax
movzx eax, byte [0x42c905]
imul eax, eax, 0x92
mov word [0x42c8a0], dx
mov byte [0x42c905], al
test ebp, ebp
je 0x4146ec
test edi, edi
je 0x4146ec
sub dl, 0x5f
mov eax, 0x139b
add cx, ax
mov byte [0x42c905], dl
movzx eax, dl
mov edx, 0x9e1
or ax, dx
mov edx, edi
mov word [0x42c90c], ax
lea eax, [ecx + 0x4229]
mov ecx, ebp
movzx eax, ax
mov word [0x42c914], ax
xor eax, 0x353b
mov word [0x42c8a0], ax
lea eax, [esp + 0x64]
push eax
call fcn.0040f780
mov cl, byte [0x42c8a0]
mov ebx, eax
or cl, 4
movzx edx, cl
mov byte [0x42c905], cl
mov ecx, 0xd830
imul edx, ecx
push ebp
mov word [0x42c8a0], dx
call fcn.004056f0
movzx eax, word [0x42c8a0]
pop ecx
pop ecx
mov ecx, 0x3a8e
xor ax, cx
mov cx, ax
test ebx, ebx
je 0x4146e8
mov cl, byte [0x42c905]
add eax, 0xffffce4b
mov word [0x42c914], ax
and cl, 0xb7
lea eax, [ebx + 5]
sub cl, 0x19
mov dword [esp + 0x84], eax
mov edx, 0xbedfd981
mov eax, dword [esp + 0x64]
add eax, 0xfffffffb
mov byte [0x42c905], cl
mov dword [esp + 0x80], eax
mov eax, 0x45e7
movzx ecx, cl
imul ecx, eax
mov eax, 0x9fe9
sub ax, cx
movzx eax, ax
mov word [0x42c8a0], ax
or eax, 0x78e1
mov word [0x42c90c], ax
lea eax, [esp + 0x58]
push eax
xor eax, eax
push eax
push eax
push eax
push eax
push eax
lea eax, [esp + 0x98]
push eax
push 3
pop ecx
call fcn.00415333
call eax
test eax, eax
je 0x4146c4
mov al, byte [0x42c8a0]
mov ecx, 0xe219
push dword [esp + 0x58]
or al, 0xf3
mov byte [0x42c905], al
movzx eax, al
or ax, cx
mov word [0x42c914], ax
xor eax, 0xde9c
mov word [0x42c8a0], ax
call fcn.0040570b
mov si, word [0x42c914]
mov edi, eax
pop ecx
mov ecx, 0x65a2
add cx, si
mov word [0x42c90c], cx
test edi, edi
je 0x4146cb
push dword [esp + 0x58]
mov eax, 0x85f6
movzx edx, si
push dword [esp + 0x60]
or dx, ax
movzx ecx, si
mov eax, 0xadf3
mov word [0x42c90c], dx
imul ecx, eax
or edx, 0xc057
push edi
mov word [0x42c8a0], dx
mov word [0x42c914], cx
call fcn.00401d70
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x64]
push ebx
mov dword [ecx], eax
mov eax, 0xc46f
and word [0x42c90c], ax
mov eax, 0x1783
xor ax, word [0x42c8a0]
mov word [0x42c914], ax
call fcn.004056f0
movzx ecx, word [0x42c914]
mov eax, 0xbec6
imul ecx, eax
add esp, 0x10
movzx eax, byte [0x42c905]
mov word [0x42c914], cx
mov ecx, 0x49d6
or ax, cx
mov word [0x42c8a0], ax
mov eax, edi
jmp 0x41472c
mov si, word [0x42c914]
mov eax, 0x2c1d
and si, ax
push ebx
mov word [0x42c914], si
call fcn.004056f0
pop ecx
mov cx, word [0x42c90c]
mov ebx, dword [esp + 0x20]
inc ebx
mov dword [esp + 0x20], ebx
cmp ebx, 2
jae 0x4146ff
mov ebp, dword [esp + 0x68]
jmp 0x4140cc
movzx ecx, byte [0x42c905]
mov edx, 0xa84b
and cx, dx
mov al, cl
mov word [0x42c90c], cx
or al, 0x17
mov byte [0x42c905], al
lea eax, [ecx - 0x2ca5]
mov word [0x42c914], ax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret