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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x450
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x50], 0x931e9163
mov dword [esp + 0x54], 0xaf4fad51
mov dword [esp + 0x58], 0xab9ca95d
mov dword [esp + 0x5c], 0xa72ea559
mov dword [esp + 0x60], 0xa3a2a15d
mov dword [esp + 0x64], 0
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0xdc
xor cl, byte [esp + eax + 0x50]
add cl, 0xb4
mov byte [esp + eax + 0x50], cl
inc eax
cmp eax, 0x18
jne case.default.0x427289
lea eax, [esp + 0x50]
lea ecx, [esp + 0x28]
push eax
call fcn.0043b860
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x447ef8]
lea ecx, [esp + 0x28]
push 0x410
call fcn.0043bb10
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x447f00]
mov dword [esp + 0x50], 0x661d547f
mov dword [esp + 0x54], 0x5462077c
mov dword [esp + 0x58], 0x68636d03
mov dword [esp + 0x5c], 0x7d666a0f
mov dword [esp + 0x60], 0x1c756e7e
mov dword [esp + 0x64], 0x15706a77
mov dword [esp + 0x68], 0x1e077a0a
mov dword [esp + 0x6c], 0x1a611871
mov dword [esp + 0x70], 0x626c1272
mov dword [esp + 0x74], 0x2654f13
mov dword [esp + 0x78], 0xb1426b63
mov word [esp + 0x7c], 0
mov byte [esp + 0x7e], 0
mov eax, 0x6f7eaef3
mov ecx, 0x1081510c
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x6f7eaea3]
mov esi, ecx
and esi, 0x10810144
mov edi, eax
and edi, 0x6c6aaebb
sub edi, esi
mov esi, edx
not esi
or esi, edi
sub edx, edi
add edx, esi
lea edi, [esi + esi]
not edi
add edi, esi
lea ebx, [edx + edx]
not ebx
add ebx, edx
mov ebp, edx
or edx, esi
and esi, 0x8d
and edi, 0x72
or edi, esi
and ebp, 0x8d
and ebx, 0x72
or ebx, ebp
xor ebx, edi
not edx
or edx, ebx
add dl, 0x95
mov byte [esp + eax - 0x6f7eaea3], dl
inc eax
dec ecx
cmp eax, 0x6f7eaf22
jne 0x427320
lea eax, [esp + 0x44]
lea ecx, [esp + 0x28]
push 0
push 0x2b
lea edi, [esp + 0x58]
push edi
push eax
call fcn.0043c0a0
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
xor eax, eax
cmp ebp, esi
sete al
jmp dword [eax*4 + 0x447f08]
mov eax, esi
sub eax, ebp
sar eax, 2
imul eax, eax, 0x421
push eax
call fcn.00408250
add esp, 4
mov dword [esp + 0x1c], 0
xor ecx, ecx
cmp ebp, esi
setne cl
mov dword [esp + 0x18], eax
mov dword [esp + 8], eax
mov dword [esp + 0x40], esi
jmp dword [ecx*4 + 0x447f10]
mov ebx, dword [esp + 0x1c]
mov eax, ebx
and al, 1
movzx eax, al
mov ecx, dword [esp + 0x464]
jmp dword [eax*4 + 0x447f18]
mov esi, dword [esp + 0x18]
jmp dword [0x447f68]
add ebp, 4
xor eax, eax
mov esi, dword [esp + 0x40]
cmp ebp, esi
setne al
jmp dword [eax*4 + 0x447f10]
mov esi, dword [ebp]
push 0x400
push 0
push edi
call fcn.00408410
add esp, 0xc
lea eax, [esp + 0x10]
lea ecx, [esp + 0x28]
push eax
push 0x400
push edi
push esi
call fcn.0043bfe0
cmp eax, 0xc0000000
setae al
cmp dword [esp + 0x10], 0
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x447f20]
mov eax, 1
jmp dword [eax*4 + 0x447f28]
xor eax, eax
jmp dword [eax*4 + 0x447f28]
mov byte [esp + 0x44f], 0
movzx eax, byte [esp + 0x50]
xor edx, edx
test al, al
je 0x4274b1
mov ecx, edi
nop
nop
cmp al, 0x2e
je 0x4274af
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x4274a0
jmp 0x4274b1
mov edx, ecx
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x447f30]
movzx eax, byte [edx + 1]
inc edx
xor ebx, ebx
test al, al
je 0x4274e1
mov ecx, edx
nop
nop
nop
nop
cmp al, 0x2e
je 0x4274df
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x4274d0
jmp 0x4274e1
mov ebx, ecx
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x447f38]
mov esi, edx
not esi
and esi, ebx
not ebx
and ebx, edx
mov dword [esp + 4], edx
mov edi, esi
sub edi, ebx
mov eax, edi
or eax, 3
mov edx, edi
and edx, 3
imul eax, edx
mov ecx, edi
and ecx, 0xfffffffc
xor edx, 3
imul edx, ecx
mov ecx, edx
add ecx, eax
shr ecx, 2
mov eax, dword [esp + 4]
movzx eax, byte [eax + edi - 1]
cmp eax, 0x3d
je 0x427533
cmp eax, 0x2e
jne 0x427534
dec ecx
mov eax, dword [esp + 4]
movzx eax, byte [eax + edi - 2]
cmp eax, 0x3d
mov dword [esp + 0xc], edi
mov dword [esp + 0x3c], ebp
je 0x42754f
cmp eax, 0x2e
jne 0x427550
dec ecx
mov dword [esp + 0x38], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408250
add esp, 4
mov dword [esp + 0x20], eax
cmp esi, ebx
mov edi, dword [esp + 4]
jne 0x4275b7
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x20]
mov byte [edi + eax], 0
push edi
call fcn.00401000
add esp, 4
mov esi, eax
jmp dword [0x447f40]
push edi
call fcn.00408260
add esp, 4
push esi
call fcn.00401950
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
lea edi, [esp + 0x50]
mov ebp, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x447f48]
jmp dword [0x447f5c]
xor esi, esi
mov ebp, 2
jmp 0x4275d2
mov esi, ebx
lea eax, [ebp + 4]
add ebp, 2
cmp ebp, ecx
mov ebp, eax
mov edi, dword [esp + 4]
jae 0x42756c
movzx eax, byte [edi + ebp - 2]
push eax
call fcn.0041e1d0
add esp, 4
mov ebx, eax
movzx eax, byte [edi + ebp - 1]
push eax
call fcn.0041e1d0
add esp, 4
shl bl, 2
mov ecx, eax
shr cl, 4
and cl, 3
or cl, bl
mov edx, edi
lea ebx, [esi + 1]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
mov byte [edi + esi], cl
mov ecx, dword [esp + 0xc]
cmp ebp, ecx
jae 0x4275c0
mov byte [esp + 3], al
movzx eax, byte [edx + ebp]
push eax
call fcn.0041e1d0
mov ecx, dword [esp + 0x10]
add esp, 4
cmp al, 0x40
mov esi, ebx
je 0x4275c2
movzx edx, byte [esp + 3]
shl dl, 4
mov ebx, eax
shr al, 2
and al, 0xf
or al, dl
mov edx, dword [esp + 0x24]
lea esi, [edx + 2]
mov byte [edi + edx + 1], al
lea eax, [ebp + 1]
cmp eax, ecx
jae 0x4275c2
mov eax, dword [esp + 4]
movzx eax, byte [eax + ebp + 1]
push eax
call fcn.0041e1d0
mov ecx, dword [esp + 0x10]
add esp, 4
cmp al, 0x40
je 0x4275c2
shl bl, 6
add al, bl
mov esi, dword [esp + 0x24]
mov byte [edi + esi + 2], al
add esi, 3
jmp 0x4275c2
mov dword [esp + 0x10], 0xc9544041
mov word [esp + 0x14], 0
mov ecx, 0xa1c05833
nop
nop
movzx ebx, byte [esp + ecx + 0x5e3fa7dd]
mov edx, ebx
and edx, ecx
add dl, dl
sub bl, dl
movzx edx, bl
add edx, ecx
inc dl
mov byte [esp + ecx + 0x5e3fa7dd], dl
inc ecx
cmp ecx, 0xa1c05839
jne 0x4276a0
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.004018a0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esp + 8]
jmp dword [ecx*4 + 0x447f50]
jmp 0x427713
movzx ecx, byte [eax]
test cl, cl
je 0x42770b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x427700
mov word [edx], 0x203a
add edx, 2
movzx eax, byte [esp + 0x50]
test al, al
je 0x42772b
lea ecx, [esp + 0x51]
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x427720
mov byte [edx], 0xa
inc edx
mov dword [esp + 8], edx
mov al, 1
mov dword [esp + 0x1c], eax
jmp dword [0x447f5c]
push esi
call fcn.00401bc0
add esp, 4
push esi
call fcn.00401bc0
add esp, 4
jmp dword [0x447f64]
xor ebx, ebx
test ebp, ebp
jne 0x427814
jmp case.0x427289.0
mov edi, dword [esp + 8]
mov byte [edi], 0
mov esi, dword [esp + 0x18]
mov eax, esi
not eax
and eax, edi
xor edi, esi
mov dword [esp + 0x50], 0x7d7a7b53
mov dword [esp + 0x54], 0x89797a7f
mov dword [esp + 0x58], 0x8c707273
mov dword [esp + 0x5c], 0x66927231
mov dword [esp + 0x60], 0x752b6863
mov dword [esp + 0x64], 0x676d6269
mov dword [esp + 0x68], 0x999e2199
mov word [esp + 0x6c], 0x2f9c
mov dword [esp + 0x6e], 0
add eax, eax
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ebx
add dl, 3
xor dl, byte [esp + ebx + 0x50]
add dl, 0xf1
mov byte [esp + ebx + 0x50], dl
inc ebx
cmp ebx, 0x22
jne 0x4277d0
sub eax, edi
lea edx, [esp + 0x50]
push eax
push esi
push edx
call fcn.004090f0
mov ebx, eax
jmp dword [0x447f68]
push esi
call fcn.00408260
add esp, 4
and bl, 1
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
test ebp, ebp
je case.0x427289.0
cmp ebp, esi
je case.0x427289.0
push ebp
call fcn.00408260
add esp, 4
lea ecx, [esp + 0x28]
call fcn.0043bc60
mov eax, ebx
add esp, 0x450
pop esi
pop edi
pop ebx
pop ebp
ret
je 0x447f75
add byte [edi + 0x10004274], bh
je 0x447f7d
add bh, ch
je 0x447f81
add byte [ecx - 0x6dffbd8b], cl
jne 0x447f89
add byte [ecx - 0x75ffbd8b], dh
jbe 0x447f91
add bh, ah
jbe 0x447f95
add cl, ch
jbe case.0x427be3.20
add byte [edi], bh
ja 0x447f9d
add byte [eax + 0x77], cl
inc edx
add byte [edi], bh
ja 0x447fa5
add byte [eax], dl
je 0x447fa9
add ah, bh
ja 0x447fad
add byte [0xab004278], al
jl 0x447fe9
jl 0x447ff1
add al, ah