Function at 0x421250
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, 0xe0
mov esi, esp
mov edi, ecx
mov ebx, dword [ebp + 0xc]
mov dword [esi + 0xcc], 0
mov dword [esi + 0xc8], 0
mov dword [esi + 0xc4], 0
mov dword [esi + 0xc0], 0
mov dword [esi + 0xbc], 0
mov dword [esi + 0xb0], 0
mov dword [esi + 0xb4], 2
mov dword [esi + 0xb8], 1
push 0xc904973f
push dword [0x44df48]
call fcn.00441930
add esp, 8
lea ecx, [esi + 0x28]
lea edx, [esi + 0xb0]
push ecx
push edx
push ebx
push dword [ebp + 8]
call eax
test eax, eax
je 0x4212ec
cmp dword [edi], 0xffffffff
jne 0x421398
jmp 0x42186d
push 0x39be051d
push dword [0x44df48]
call fcn.00441930
add esp, 8
mov dword [esi], eax
push 0x847b02a2
push dword [0x44df48]
call fcn.00441930
add esp, 8
mov dword [esi + 0x1c], eax
push 0x2e775759
push dword [0x44df48]
call fcn.00441930
add esp, 8
mov dword [esi + 4], eax
mov ebx, dword [esi + 0x28]
jmp 0x421343
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x421374
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [esi]
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x421340
push dword [ebx + 0x10]
push dword [ebx + 0x18]
push eax
call dword [esi + 0x1c]
test eax, eax
je 0x421374
push dword [edi]
call dword [esi + 4]
mov dword [edi], 0xffffffff
jmp 0x421340
push 0x18c354a9
push dword [0x44df48]
call fcn.00441930
add esp, 8
push dword [esi + 0x28]
call eax
mov ebx, dword [ebp + 0xc]
cmp dword [edi], 0xffffffff
je 0x42186d
mov ecx, dword [ebp + 0x10]
mov eax, 0x8d
cmp byte [ecx + eax - 0x8d], 0
lea eax, [eax + 1]
jne 0x4213a0
mov edx, dword [ebp + 8]
inc eax
cmp byte [edx], 0
lea edx, [edx + 1]
jne 0x4213b0
mov edx, ebx
nop
nop
nop
nop
nop
inc eax
cmp byte [edx], 0
lea edx, [edx + 1]
jne 0x4213c0
mov dword [esi + 0x1c], edi
add eax, 3
and eax, 0xfffffffc
call fcn.004082c0
mov eax, esp
and eax, 0xfffffff0
mov dword [esi], eax
mov esp, eax
mov dword [esi + 0x30], 0x8d8a7f44
mov dword [esi + 0x34], 0x4b515270
mov dword [esi + 0x38], 0x6124284f
mov dword [esi + 0x3c], 0x7fb6b689
mov word [esi + 0x40], 0x3754
mov dword [esi + 0x42], 0
xor eax, eax
nop
nop
nop
nop
nop
mov edx, eax
add dl, 0x89
xor dl, byte [esi + eax + 0x30]
add dl, 0x53
mov byte [esi + eax + 0x30], dl
inc eax
cmp eax, 0x16
jne 0x421410
mov dword [esi + 0xc], 0xbfcadcd3
mov byte [esi + 0x10], 0x9c
mov dword [esi + 0x11], 0
mov byte [esi + 0x15], 0
mov eax, 0x7948281b
mov edx, 0xe5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esi + eax - 0x7948280f]
mov ebx, edi
not ebx
or ebx, edx
and edi, edx
add ebx, eax
or ebx, edi
mov edi, ebx
not edi
and edi, 0x83
and ebx, 0x7c
sub ebx, edi
inc bl
mov byte [esi + eax - 0x7948280f], bl
inc eax
dec edx
cmp eax, 0x79482825
jne 0x421450
movzx edx, byte [esi + 0xc]
mov edi, dword [esi]
test dl, dl
je 0x4214ab
lea ebx, [esi + 0xd]
mov edi, dword [esi]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ebx]
inc ebx
test dl, dl
jne 0x4214a0
mov byte [edi], 0
movzx edx, byte [ecx]
test dl, dl
je 0x4214cd
inc ecx
mov eax, dword [ebp + 8]
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x4214c0
jmp 0x4214d0
mov eax, dword [ebp + 8]
mov byte [edi], 0
movzx ecx, byte [esi + 0x30]
test cl, cl
je 0x4214eb
lea edx, [esi + 0x31]
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4214e0
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x42150b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x421500
mov dword [esi + 4], edi
mov byte [edi], 0x3a
mov dword [esi + 0x30], 0x93773b3d
mov dword [esi + 0x34], 0x83879783
mov dword [esi + 0x38], 0x8c5a739d
mov dword [esi + 0x3c], 0x808d9f99
mov dword [esi + 0x40], 0x87978a93
mov dword [esi + 0x44], 0x88752f29
mov dword [esi + 0x48], 0xa8afb7b6
mov dword [esi + 0x4c], 0xb1b1b4b8
mov dword [esi + 0x50], 0xb357614a
mov dword [esi + 0x54], 0xa3a7b7a3
mov dword [esi + 0x58], 0x480004bd
mov dword [esi + 0x5c], 0x4863beb9
mov dword [esi + 0x60], 0xac41b3b5
mov dword [esi + 0x64], 0xa3b3aeb7
mov dword [esi + 0x68], 0xe2cf3215
mov dword [esi + 0x6c], 0x3c360d26
mov dword [esi + 0x70], 0x13c1d3dd
mov dword [esi + 0x74], 0xceda38d7
mov dword [esi + 0x78], 0x3c3bc22d
mov dword [esi + 0x7c], 0x200bc0c1
mov dword [esi + 0x80], 0x135c120
mov dword [esi + 0x84], 0x2031d42c
mov dword [esi + 0x88], 0x515704f3
mov dword [esi + 0x8c], 0x32ede81f
mov dword [esi + 0x90], 0x10e0e417
mov dword [esi + 0x94], 0xe2fde6fb
mov dword [esi + 0x98], 0xfe0c24ec
mov dword [esi + 0x9c], 0xe0e7eeee
mov dword [esi + 0xa0], 0x22321bee
mov dword [esi + 0xa4], 0x4a4c4827
mov word [esi + 0xa8], 0xa9b2
mov byte [esi + 0xae], 0
mov dword [esi + 0xaa], 0
mov ecx, 0x7b122e88
mov eax, 0x84edd177
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esi + ecx - 0x7b122e58]
mov edi, ebx
not edi
or edi, 0x5ebfe54e
add edi, ebx
inc edi
and ebx, 0xffffffb1
xor ebx, 0xa1401ab1
or edi, ebx
mov edx, eax
and edx, 0x804010b1
mov ebx, ecx
and ebx, 0x5a12254e
or ebx, edx
xor ebx, edi
mov edx, 0xfc
sub edx, ebx
add ebx, 3
and edx, 0xac
and ebx, 0x53
sub ebx, edx
inc bl
mov byte [esi + ecx - 0x7b122e58], bl
inc ecx
dec eax
cmp ecx, 0x7b122f07
jne 0x421630
mov edi, dword [esi + 4]
inc edi
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
test cl, cl
je 0x4216ab
inc eax
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4216a0
mov byte [edi], 0
movzx ecx, byte [esi + 0x30]
test cl, cl
je 0x4216cb
lea edx, [esi + 0x31]
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4216c0
mov byte [edi], 0
mov eax, edi
mov ebx, dword [esi]
xor eax, ebx
mov ecx, edi
mov edi, ebx
not edi
and edi, ecx
add edi, edi
sub edi, eax
push 0xd0026952
push dword [0x44df48]
call fcn.00441930
add esp, 8
push 0
push edi
push ebx
mov edi, dword [esi + 0x1c]
push dword [edi]
call eax
cmp eax, 0xffffffff
jne 0x421745
cmp dword [edi], 0xffffffff
je 0x421745
push 0x59ea2086
push dword [0x44df48]
call fcn.00441930
add esp, 8
push 2
push dword [edi]
call eax
push 0x2e775759
push dword [0x44df48]
call fcn.00441930
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
xor eax, eax
jmp 0x421c26
cmp eax, 0xffffffff
je 0x42186d
push 0x400
call fcn.004083e0
add esp, 4
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
add eax, 0x400
mov dword [esi + 0x14], eax
lea eax, [esi + 0xc]
mov ecx, edi
push eax
call fcn.00421c30
mov cl, 1
mov dword [esi + 0x18], ecx
test al, al
je 0x421c0e
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov ebx, ecx
sub ebx, eax
cmp ecx, dword [esi + 0x14]
jne 0x4218d8
mov dword [esi + 8], ecx
mov dword [esi], eax
lea eax, [ebx + 1]
mov ecx, ebx
shr ecx, 1
mov dword [esi + 0x24], ecx
add ecx, ebx
cmp ecx, eax
ja 0x4217ab
mov ecx, eax
mov dword [esi + 4], ecx
push ecx
call fcn.004083e0
add esp, 4
mov ecx, dword [esi]
test ecx, ecx
je 0x4218c7
cmp eax, ecx
mov dword [esi + 0x18], ebx
mov edx, dword [esi + 8]
mov dword [esi + 0x20], eax
jbe 0x421874
cmp edx, eax
jbe 0x421874
test ebx, ebx
je 0x4218b3
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x20]
add eax, edx
dec eax
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x42180c
neg edi
xor edx, edx
movzx ebx, byte [ecx + edx]
mov byte [eax + edx], bl
dec edx
cmp edi, edx
jne 0x4217f9
add ecx, edx
add eax, edx
add edx, dword [esi + 0x18]
mov edi, dword [esi]
sub edi, dword [esi + 8]
cmp edi, 0xfffffff8
ja 0x4218b3
neg edx
xor edi, edi
movzx ebx, byte [ecx + edi]
mov byte [eax + edi], bl
movzx ebx, byte [ecx + edi - 1]
mov byte [eax + edi - 1], bl
movzx ebx, byte [ecx + edi - 2]
mov byte [eax + edi - 2], bl
movzx ebx, byte [ecx + edi - 3]
mov byte [eax + edi - 3], bl
movzx ebx, byte [ecx + edi - 4]
mov byte [eax + edi - 4], bl
movzx ebx, byte [ecx + edi - 5]
mov byte [eax + edi - 5], bl
movzx ebx, byte [ecx + edi - 6]
mov byte [eax + edi - 6], bl
movzx ebx, byte [ecx + edi - 7]
mov byte [eax + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x42181e
jmp 0x4218b3
xor eax, eax
jmp 0x421c26
mov edx, ecx
mov ecx, ebx
shr ecx, 2
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
lea edi, [eax + edx]
add edx, dword [esi]
mov ecx, dword [esi + 0x24]
and ecx, 1
mov eax, ebx
mov ebx, edx
mov dword [esi], edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
test al, 1
je 0x4218b3
mov ecx, dword [esi + 0x18]
and ecx, 2
movzx edx, byte [edx + ecx]
mov eax, dword [esi]
mov byte [eax + ecx], dl
push dword [esi + 0xc]
call fcn.004083f0
add esp, 4
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x20]
mov dword [esi + 0xc], eax
lea ecx, [eax + ebx]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 4]
add ecx, eax
mov dword [esi + 0x14], ecx
mov byte [eax + ebx], 0
mov ebx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi + 8], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x30], 0xc9c6c7d4
mov dword [esi + 0x34], 0x9a9498a9
mov dword [esi + 0x38], 0x9e929c84
mov byte [esi + 0x3c], 0xa0
mov dword [esi + 0x3d], 0
mov word [esi + 0x41], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x1b
xor al, byte [esi + ecx + 0x30]
add al, 0x79
mov byte [esi + ecx + 0x30], al
inc ecx
cmp ecx, 0x13
jne 0x421920
movzx edx, byte [esi + 0x30]
mov dword [esi + 4], ebx
mov dword [esi], ebx
test dl, dl
je 0x42197b
lea ebx, [esi + 0x30]
mov eax, dword [esi + 4]
mov ecx, eax
mov dword [esi], eax
jmp 0x42195a
movzx edx, byte [ebx]
test dl, dl
mov edi, dword [esi + 0x1c]
je 0x42197b
movzx eax, byte [ecx]
test al, al
je 0x421bfb
inc ecx
inc ebx
mov edi, dword [esi]
inc edi
cmp al, dl
je 0x421974
mov eax, edi
mov dword [esi], edi
mov ecx, edi
je 0x421950
lea ebx, [esi + 0x30]
jmp 0x421950
cmp dword [esi], 0
je 0x421bfb
mov ebx, dword [esi + 8]
jmp 0x42199e
cmp al, dl
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi + 8]
je 0x421c0e
mov ecx, edi
mov edi, dword [esi + 4]
mov edx, edi
sub edx, ebx
je 0x4219c8
mov dword [esi], ebx
xor ecx, ecx
mov dword [esi + 4], edi
mov eax, dword [esi]
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edi, dword [esi + 4]
xor ecx, ecx
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, dword [esi + 0x1c]
add dword [esi + 0x10], edx
lea eax, [esi + 0xc]
push eax
call fcn.00421c30
test al, al
je 0x421c07
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov ebx, ecx
sub ebx, eax
cmp ecx, dword [esi + 0x14]
jne 0x421b40
mov dword [esi + 4], ecx
mov dword [esi], eax
lea eax, [ebx + 1]
mov ecx, ebx
shr ecx, 1
mov dword [esi + 0x24], ecx
lea edi, [ecx + ebx]
cmp edi, eax
ja 0x421a07
mov edi, eax
push edi
call fcn.004083e0
add esp, 4
mov ecx, dword [esi]
test ecx, ecx
je 0x421b32
mov dword [esi + 0x2c], edi
cmp eax, ecx
mov dword [esi + 8], ebx
mov edx, dword [esi + 4]
mov dword [esi + 0x20], eax
jbe 0x421adf
cmp edx, eax
jbe 0x421adf
test ebx, ebx
je 0x421b1e
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x20]
add eax, edx
dec eax
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x421a73
neg edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [ecx + edx]
mov byte [eax + edx], bl
dec edx
cmp edi, edx
jne 0x421a60
add ecx, edx
add eax, edx
add edx, dword [esi + 8]
mov edi, dword [esi]
sub edi, dword [esi + 4]
cmp edi, 0xfffffff8
ja 0x421b1e
neg edx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [ecx + edi]
mov byte [eax + edi], bl
movzx ebx, byte [ecx + edi - 1]
mov byte [eax + edi - 1], bl
movzx ebx, byte [ecx + edi - 2]
mov byte [eax + edi - 2], bl
movzx ebx, byte [ecx + edi - 3]
mov byte [eax + edi - 3], bl
movzx ebx, byte [ecx + edi - 4]
mov byte [eax + edi - 4], bl
movzx ebx, byte [ecx + edi - 5]
mov byte [eax + edi - 5], bl
movzx ebx, byte [ecx + edi - 6]
mov byte [eax + edi - 6], bl
movzx ebx, byte [ecx + edi - 7]
mov byte [eax + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x421a90
jmp 0x421b1e
mov edx, ecx
mov ecx, ebx
shr ecx, 2
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
lea edi, [eax + edx]
add edx, dword [esi]
mov ecx, dword [esi + 0x24]
and ecx, 1
mov eax, ebx
mov ebx, edx
mov dword [esi], edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
test al, 1
je 0x421b1e
mov ecx, dword [esi + 8]
and ecx, 2
movzx edx, byte [edx + ecx]
mov eax, dword [esi]
mov byte [eax + ecx], dl
push dword [esi + 0xc]
call fcn.004083f0
add esp, 4
mov ebx, dword [esi + 8]
mov edi, dword [esi + 0x2c]
mov eax, dword [esi + 0x20]
mov dword [esi + 0xc], eax
lea ecx, [eax + ebx]
mov dword [esi + 0x10], ecx
add edi, eax
mov dword [esi + 0x14], edi
mov byte [eax + ebx], 0
mov eax, dword [esi + 0xc]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi + 8], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x30], 0x424b4d
xor ecx, ecx
mov edx, 0x4013756f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi], edx
movzx eax, byte [esi + ecx + 0x30]
mov edx, dword [esi]
or edx, eax
not eax
or eax, ecx
or eax, 0x90
and eax, edx
mov edx, eax
and edx, 0x4001412f
xor edx, 0x40614b2f
mov ebx, eax
and ebx, 2
mov edi, edx
and edi, 0x40614b2d
imul edi, ebx
mov ebx, edx
and ebx, 2
or edx, 2
imul edx, ebx
mov ebx, eax
xor ebx, 0xd0
add ebx, edi
add ebx, edx
mov edx, dword [esi]
and eax, 1
or ebx, 1
add ebx, eax
mov byte [esi + ecx + 0x30], bl
inc ecx
dec edx
cmp ecx, 4
jne 0x421b70
xor ecx, ecx
mov edi, dword [esi + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [edi + ecx]
movzx edx, byte [esi + ecx + 0x30]
test al, al
je 0x421990
inc ecx
cmp al, dl
je 0x421be0
jmp 0x421990
mov ecx, edi
push 0x3ea
call fcn.00420fa0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x421c23
cmp eax, dword [esi + 0x10]
je 0x421c23
push eax
call fcn.004083f0
add esp, 4
mov eax, dword [esi + 0x18]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc