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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xfc
mov eax, dword [0x44f3c4]
mov dword [esp + 0x14], 0x6125675b
mov dword [esp + 0x18], 0x7d126310
mov dword [esp + 0x1c], 0x791d7f20
mov dword [esp + 0x20], 0x75197bf4
mov dword [esp + 0x24], 0x7176774b
mov word [esp + 0x28], 0
mov byte [esp + 0x2a], 0
mov dword [esp + 0x5c], 0
mov ecx, dword [esp + 0x5c]
cmp ecx, 0x16
ja 0x4293f2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x5c]
movzx edx, byte [esp + edx + 0x14]
mov esi, ecx
xor esi, 0xbd4c96e9
and ecx, 0x3d4c96e9
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0xd0]
mov edx, ecx
xor edx, 0x8d
and ecx, 0x72
add ecx, ecx
sub ecx, edx
mov edx, dword [esp + 0x5c]
mov byte [esp + edx + 0x14], cl
inc dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
cmp ecx, 0x17
jb 0x4293a0
lea edi, [esp + 0x98]
lea esi, [esp + 0x14]
push edi
push 0
push 0
push 9
push esi
push 0
call eax
mov ebx, dword [esp + 0x98]
test ebx, ebx
jns 0x42941b
mov eax, 0xffffffff
jmp 0x42941e
lea eax, [ebx + ebx]
push eax
call fcn.0040c690
add esp, 4
mov dword [esp + 0x50], eax
mov eax, dword [0x44f3c4]
mov dword [esp + 0x14], 0x89558b77
mov dword [esp + 0x18], 0x85368738
mov dword [esp + 0x1c], 0x813d8358
mov dword [esp + 0x20], 0x9d219f0c
mov dword [esp + 0x24], 0x999a9b67
mov dword [esp + 0x28], 0
mov dword [esp + 0x5c], 0
mov ecx, dword [esp + 0x5c]
cmp ecx, 0x17
ja 0x4294cc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x5c]
movzx edx, byte [esp + edx + 0x14]
mov ebp, ecx
xor ebp, 0xe22ce1e3
and ecx, 0xe22ce1e3
lea ecx, [ecx*2]
add ecx, ebp
xor ecx, edx
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0xd0]
add cl, 0x91
mov edx, dword [esp + 0x5c]
mov byte [esp + edx + 0x14], cl
inc dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
cmp ecx, 0x18
jb 0x429480
push edi
push ebx
push dword [esp + 0x58]
push 9
push esi
push 0
call eax
mov dword [esp + 0x14], 0xf965fbc0
mov dword [esp + 0x18], 0xfd5bff6d
mov dword [esp + 0x1c], 0xf164f36d
mov dword [esp + 0x20], 0xf5f6f754
lea edx, [esp + 0x24]
mov byte [esp + 0x24], 0
mov dword [esp + 0x5c], 0
mov eax, dword [esp + 0x5c]
cmp eax, 0x10
ja 0x429575
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
movzx ecx, byte [esp + ecx + 0x14]
mov esi, eax
xor esi, 0xca07717f
and eax, 0xca07717f
lea eax, [esi + eax*2]
lea esi, [eax + ecx]
and eax, ecx
mov ecx, esi
xor ecx, eax
add ecx, eax
not eax
and eax, esi
add eax, eax
sub eax, ecx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0x85
mov ecx, dword [esp + 0x5c]
mov byte [esp + ecx + 0x14], al
inc dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
cmp eax, 0x11
jb 0x429520
lea eax, [esp + 0xec]
lea esi, [esp + 0x14]
mov edi, eax
mov ecx, 4
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0xfc]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x14], 0x1fb719dc
mov dword [esp + 0x18], 0xe3451dab
mov dword [esp + 0x1c], 0xe750e153
mov dword [esp + 0x20], 0xeb2de540
mov dword [esp + 0x24], 0xef5ce949
mov dword [esp + 0x28], 0xf344ed4d
mov dword [esp + 0x2c], 0xf7f6f149
lea esi, [esp + 0x30]
mov word [esp + 0x30], 0
mov dword [esp + 0x74], 0
mov ecx, dword [esp + 0x74]
cmp ecx, 0x1d
ja 0x42964c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x74]
movzx edx, byte [esp + edx + 0x14]
mov edi, ecx
xor edi, 0x80b95ffa
and ecx, 0xb95ffa
lea ecx, [edi + ecx*2]
xor ecx, edx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x5c]
mov edx, ecx
not edx
and edx, 0xe2
and ecx, 0x1d
sub ecx, edx
mov edx, dword [esp + 0x74]
mov byte [esp + edx + 0x14], cl
inc dword [esp + 0x74]
mov ecx, dword [esp + 0x74]
cmp ecx, 0x1e
jb 0x429600
lea edx, [esp + 0xd0]
lea ebx, [esp + 0x14]
mov edi, edx
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0xec]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0x14], 0x1fb7195c
mov dword [esp + 0x18], 0x63c51dab
mov dword [esp + 0x1c], 0x67d061d3
mov dword [esp + 0x20], 0x6b3a65c0
mov dword [esp + 0x24], 0x6f28693c
lea ebx, [esp + 0x28]
mov word [esp + 0x28], 0x6d6c
mov dword [esp + 0x2a], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x19
ja 0x42970c
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
movzx esi, byte [esp + esi + 0x14]
mov edi, ecx
xor edi, 0xf70b37ba
and ecx, 0xf70b37ba
lea ecx, [edi + ecx*2]
xor ecx, esi
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x74]
mov esi, ecx
not esi
and esi, 0xa2
and ecx, 0x5d
sub ecx, esi
mov esi, dword [esp + 0xc]
mov byte [esp + esi + 0x14], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x1a
jb case.default.0x42979c
lea esi, [esp + 0x5c]
lea ebp, [esp + 0x14]
mov edi, esi
mov ecx, 5
xchg esi, ebp
rep movsd dword es:[edi], dword [esi]
xchg esi, ebp
lea edi, [esp + 0x70]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], esi
lea eax, [esp + 0x2e]
mov dword [esp + 0xc8], eax
lea eax, [esp + 0x42]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x50]
add eax, 2
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x16]
mov dword [esp + 0xc4], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x80], 0
cmp ecx, 0xc
setne al
lea ecx, [esp + 0x16]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xb8], ecx
xor ecx, ecx
jmp dword [eax*4 + 0x44b5ac]
movsb byte es:[edi], byte [esi]
inc edx
add byte [eax + 0x100429d], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebx - 0x5c], ch
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx - 0x5c], dh
inc edx
add byte [ebx + 0x360042a4], al
lahf
inc edx
add byte [eax - 0x61], al
inc edx
add bh, dl
lahf
inc edx
add byte [edi - 0x61], ah
inc edx
add al, cl
lahf
inc edx
add byte [edi + ebx*4 - 0x6037ffbe], ah
inc edx
add byte [esi + 0x2f004297], bh
wait
inc edx
add byte [ecx + 0x3c00429a], dh
wait
inc edx
add byte [eax - 0x64], ah
inc edx
add byte [eax - 0x64], ah
inc edx
add al, bl
lcall 0x42, 0x9ae00042
out dx, eax
lcall 66, 0x9b100042
cmc
lcall 66, 0x9b2f0042
adc byte [ebx - 0x6548ffbe], bl
inc edx
add bl, al
lcall 0x42, 0x9fce0042
xlatb
lahf
inc edx
add byte [esi - 0x5fffbd60], al
mov al, byte [0xa0a00042]
inc edx
add byte [eax - 0x59ffbd60], ah
mov al, byte [0xa0a00042]
inc edx
add byte [edx - 0x5c], al
inc edx
add byte [eax - 0x29ffbd60], dh
mov dword [0xa3ff0042], eax
inc edx
add ah, bl
mov dword [0xa3f00042], eax
inc edx
add al, dh
mov dword [0xa3ff0042], eax
inc edx
add byte [0x220042a4], al
movsb byte es:[edi], byte [esi]
inc edx
add byte [eax], ah
movsb byte es:[edi], byte [esi]
inc edx
add byte [eax], ah
movsb byte es:[edi], byte [esi]
inc edx
add byte [edx], ah
movsb byte es:[edi], byte [esi]
inc edx
add byte [eax], ah
movsb byte es:[edi], byte [esi]
inc edx
add byte [eax - 0x5c], al
inc edx
add byte [eax - 0x5c], al
inc edx
add byte [edx - 0x5c], al
inc edx
add byte [eax - 0x5c], al
inc edx
add byte [eax - 0x5c], dl
inc edx
add byte [eax - 0x5c], dl
inc edx
add byte [edx - 0x5c], dl
inc edx
add byte [eax - 0x5c], dl
inc edx
add byte [eax - 0x76ffbd5c], dl
movsb byte es:[edi], byte [esi]
inc edx
add byte [esi - 0x6fffbd5c], dl
movsb byte es:[edi], byte [esi]
inc edx
add byte [eax], bh