Function at 0x420f10
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 [0x44df90]
call fcn.00442040
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 0x420fac
cmp dword [edi], 0xffffffff
jne 0x421058
jmp 0x421562
push 0x39be051d
push dword [0x44df90]
call fcn.00442040
add esp, 8
mov dword [esi + 4], eax
push 0x847b02a2
push dword [0x44df90]
call fcn.00442040
add esp, 8
mov dword [esi], eax
push 0x2e775759
push dword [0x44df90]
call fcn.00442040
add esp, 8
mov dword [esi + 8], eax
mov ebx, dword [esi + 0x28]
jmp 0x421003
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x421034
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [esi + 4]
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x421000
push dword [ebx + 0x10]
push dword [ebx + 0x18]
push eax
call dword [esi]
test eax, eax
je 0x421034
push dword [edi]
call dword [esi + 8]
mov dword [edi], 0xffffffff
jmp 0x421000
push 0x18c354a9
push dword [0x44df90]
call fcn.00442040
add esp, 8
push dword [esi + 0x28]
call eax
mov ebx, dword [ebp + 0xc]
cmp dword [edi], 0xffffffff
je 0x421562
mov ecx, dword [ebp + 0x10]
mov eax, 0x8d
cmp byte [ecx + eax - 0x8d], 0
lea eax, [eax + 1]
jne 0x421060
mov ecx, dword [ebp + 8]
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x421070
mov dword [esi + 0x1c], edi
mov ecx, ebx
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x421080
add eax, 3
and eax, 0xfffffffc
call fcn.00408520
mov eax, esp
and eax, 0xfffffff0
mov dword [esi], eax
mov esp, eax
mov dword [esi + 0x30], 0xfbfae138
mov dword [esi + 0x34], 0xc1c3c6e4
mov dword [esi + 0x38], 0xf73824c1
mov dword [esi + 0x3c], 0xcd86829f
mov word [esi + 0x40], 0x928
mov dword [esi + 0x42], 0
mov byte [esi + 0x46], 0
mov eax, 0xbaa32b9
mov edx, 0xf455cd46
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esi + edx + 0xbaa32ea]
mov edi, edx
or edi, ebx
or ebx, eax
dec eax
mov ecx, eax
sub ecx, ebx
add ebx, edx
inc ebx
xor ebx, edi
and ecx, edi
add ecx, ecx
sub ecx, ebx
add ecx, 0xe5a31cfe
mov edi, ecx
xor edi, 0x5d
and ecx, 0x22
add ecx, ecx
sub ecx, edi
inc cl
mov byte [esi + edx + 0xbaa32ea], cl
inc edx
cmp eax, 0xbaa32a2
jne 0x4210e0
mov dword [esi + 0xc], 0x17ca4443
mov byte [esi + 0x10], 0x74
mov dword [esi + 0x11], 0
mov edi, 0xc10f163e
mov edx, 0x3ef0e9c1
nop
nop
nop
mov dword [esi + 4], edx
movzx ebx, byte [esi + edi + 0x3ef0e9ce]
mov eax, edi
and eax, ebx
add eax, eax
mov ecx, ebx
sub ecx, eax
add ecx, edi
or ecx, edx
mov eax, ecx
shr al, 1
and al, 1
mov edx, ecx
not dl
mov ah, dl
and ah, 0x7d
mul ah
add al, al
sub bl, al
test cl, 2
sete al
or dl, 2
mul dl
mov edx, dword [esi + 4]
add al, al
sub bl, al
movzx eax, bl
add eax, edi
add al, 0xca
mov byte [esi + edi + 0x3ef0e9ce], al
inc edi
dec edx
cmp edi, 0xc10f1647
jne 0x421140
movzx eax, byte [esi + 0xc]
mov edx, dword [esi]
test al, al
je 0x4211bb
lea ecx, [esi + 0xd]
mov edx, dword [esi]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4211b0
mov byte [edx], 0
mov ecx, dword [ebp + 0x10]
movzx eax, byte [ecx]
test al, al
je 0x4211db
inc ecx
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4211d0
mov byte [edx], 0
movzx eax, byte [esi + 0x30]
test al, al
je 0x4211fb
lea ecx, [esi + 0x31]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4211f0
mov byte [edx], 0
mov ecx, dword [ebp + 8]
movzx eax, byte [ecx]
test al, al
je 0x42121b
inc ecx
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421210
mov dword [esi + 8], edx
mov byte [edx], 0x3a
mov dword [esi + 0x30], 0x6971c5d7
mov dword [esi + 0x34], 0x79796961
mov dword [esi + 0x38], 0x58321d67
mov dword [esi + 0x3c], 0x6463716b
mov dword [esi + 0x40], 0x1d111671
mov dword [esi + 0x44], 0x1c6bb1bb
mov dword [esi + 0x48], 0x419111e
mov dword [esi + 0x4c], 0x17171814
mov dword [esi + 0x50], 0x9115b6a
mov dword [esi + 0x54], 0x19190901
mov dword [esi + 0x58], 0x64aca007
mov dword [esi + 0x5c], 0x1c45120b
mov dword [esi + 0x60], 0x385f2d0f
mov dword [esi + 0x64], 0x3935322d
mov dword [esi + 0x68], 0xe395e7f
mov dword [esi + 0x6c], 0x505e674e
mov dword [esi + 0x70], 0x693f2d37
mov dword [esi + 0x74], 0x32224c2d
mov dword [esi + 0x78], 0x48552e37
mov dword [esi + 0x7c], 0x445d2423
mov dword [esi + 0x80], 0x9fb3db44
mov dword [esi + 0x84], 0xc4b7c8b0
mov dword [esi + 0x88], 0x7f71a0d1
mov dword [esi + 0x8c], 0x96c3dcb5
mov dword [esi + 0x90], 0xacdcc0cd
mov dword [esi + 0x94], 0xc6c3dac9
mov dword [esi + 0x98], 0xcad880c8
mov dword [esi + 0x9c], 0xc4c9c2c6
mov dword [esi + 0xa0], 0xbeaa85c6
mov dword [esi + 0xa4], 0x5e505cbd
mov word [esi + 0xa8], 0x4352
mov byte [esi + 0xae], 0
mov dword [esi + 0xaa], 0
lea eax, [esi + 0x30]
xor ecx, ecx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax]
mov dword [esi + 4], edx
mov ebx, ecx
and ebx, 0xb8a9b1a2
mov edx, edi
xor edx, 0x23ab272e
sub edx, ebx
inc edx
mov ebx, edx
or ebx, dword [esi + 4]
and edx, dword [esi + 4]
sub ebx, edx
add bl, 0x15
mov byte [eax], bl
inc eax
dec edi
add ecx, 0xfffffffe
cmp edi, 0xffffff81
jne 0x421340
mov edx, dword [esi + 8]
inc edx
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx]
test al, al
je 0x42139b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421390
mov byte [edx], 0
movzx eax, byte [esi + 0x30]
test al, al
je 0x4213bb
lea ecx, [esi + 0x31]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4213b0
mov byte [edx], 0
mov ebx, dword [esi]
sub edx, ebx
push 0xd0026952
push dword [0x44df90]
mov edi, edx
call fcn.00442040
add esp, 8
push 0
push edi
push ebx
mov edi, dword [esi + 0x1c]
push dword [edi]
call eax
cmp eax, 0xffffffff
jne 0x421429
cmp dword [edi], 0xffffffff
je 0x421429
push 0x59ea2086
push dword [0x44df90]
call fcn.00442040
add esp, 8
push 2
push dword [edi]
call eax
push 0x2e775759
push dword [0x44df90]
call fcn.00442040
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
xor eax, eax
jmp 0x4216e7
cmp eax, 0xffffffff
je 0x421562
push 0x400
call fcn.00408640
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.00421980
mov cl, 1
mov dword [esi], ecx
test al, al
je 0x4216d0
mov ebx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov eax, edx
sub eax, ebx
mov ecx, ebx
mov dword [esi + 4], ebx
cmp edx, dword [esi + 0x14]
jne 0x4215cf
mov dword [esi + 8], edx
mov edx, eax
and edx, 1
mov ecx, eax
xor ecx, 1
lea ecx, [ecx + edx*2]
mov edx, eax
shr edx, 1
mov dword [esi], eax
mov dword [esi + 0x20], edx
add eax, edx
cmp eax, ecx
ja 0x42149d
mov eax, ecx
mov dword [esi + 0x24], eax
push eax
call fcn.00408640
add esp, 4
test ebx, ebx
mov dword [esi + 4], eax
je 0x4215b7
cmp eax, ebx
mov dword [esi + 0x18], ebx
mov edx, dword [esi]
jbe 0x421569
cmp dword [esi + 8], eax
jbe 0x421569
test edx, edx
je 0x4215a3
mov ebx, dword [esi + 0x18]
mov edx, dword [esi]
lea eax, [ebx + edx]
dec eax
mov ecx, dword [esi + 4]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x421501
neg edi
xor edx, edx
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x4214ec
add eax, edx
add ecx, edx
add edx, dword [esi]
mov ebx, dword [esi + 0x18]
mov edi, ebx
sub edi, dword [esi + 8]
cmp edi, 0xfffffff8
ja 0x4215a3
neg edx
xor edi, edi
movzx ebx, byte [eax + edi]
mov byte [ecx + edi], bl
movzx ebx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], bl
movzx ebx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], bl
movzx ebx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], bl
movzx ebx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], bl
movzx ebx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], bl
movzx ebx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], bl
movzx ebx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x421513
jmp 0x4215a3
xor eax, eax
jmp 0x4216e7
mov ecx, edx
shr ecx, 2
mov edx, ebx
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, dword [esi]
and edx, 0xfffffffc
add eax, edx
add edx, ebx
mov ebx, eax
mov ecx, dword [esi + 0x20]
and ecx, 1
mov eax, edx
mov edi, ebx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test byte [esi], 1
je 0x4215a3
mov eax, dword [esi]
and eax, 2
movzx ecx, byte [edx + eax]
mov byte [ebx + eax], cl
push dword [esi + 0xc]
call fcn.00408650
add esp, 4
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov dword [esi + 0xc], eax
mov edx, eax
mov eax, dword [esi]
lea ecx, [edx + eax]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x24]
add ecx, edx
mov dword [esi + 0x14], ecx
mov edx, dword [esi + 8]
mov ecx, ebx
xor ecx, edx
not ebx
and ebx, edx
add ebx, ebx
sub ebx, ecx
cmp ebx, eax
jae 0x421607
mov eax, dword [esi + 4]
lea ecx, [eax + ebx]
inc ecx
mov dword [esi], ecx
add eax, ebx
mov edx, eax
xor ecx, ecx
mov edi, dword [esi]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, dword [esi]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0x1c]
mov eax, dword [esi + 0xc]
jmp 0x42160a
mov eax, dword [esi + 4]
mov byte [eax + ebx], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
inc ecx
mov dword [esi + 4], ecx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x30], 0xd9dedfac
mov dword [esi + 0x34], 0xbabcb8b9
mov dword [esi + 0x38], 0x8682848c
mov byte [esi + 0x3c], 0x50
mov dword [esi + 0x3d], 0
mov ecx, 0xbebcb217
movzx edx, byte [esi + ecx + 0x41434e19]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0x8d
mov byte [esi + ecx + 0x41434e19], dl
inc ecx
cmp ecx, 0xbebcb228
jne 0x421640
movzx edx, byte [esi + 0x30]
mov ecx, eax
mov dword [esi], eax
test dl, dl
je 0x4216b9
lea ebx, [esi + 0x30]
mov ecx, eax
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
mov dword [esi], eax
jmp 0x42169a
movzx edx, byte [ebx]
test dl, dl
mov edi, dword [esi + 0x1c]
je 0x4216b9
mov dh, byte [ecx]
test dh, dh
je 0x4216be
inc ecx
inc ebx
mov eax, dword [esi]
lea edi, [eax + 1]
cmp dh, dl
je 0x4216af
mov ecx, edi
mov dword [esi], edi
mov eax, dword [esi + 8]
je 0x421690
lea ebx, [esi + 0x30]
jmp 0x421690
cmp dword [esi], 0
jne 0x421707
mov ecx, edi
push 0x3ea
call fcn.00420970
mov dword [esi], 0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4216e5
cmp eax, dword [esi + 0x10]
je 0x4216e5
push eax
call fcn.00408650
add esp, 4
mov eax, dword [esi]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
cmp dl, dh
mov edi, dword [esi + 0x1c]
je 0x4216d0
mov edx, eax
mov ecx, dword [esi + 4]
sub edx, ecx
je 0x421731
mov ebx, ecx
mov edi, eax
mov dword [esi + 4], ecx
xor ecx, ecx
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
xor ecx, ecx
mov edi, eax
mov eax, dword [esi + 4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0x1c]
add dword [esi + 0x10], edx
mov ecx, edi
lea eax, [esi + 0xc]
push eax
call fcn.00421980
test al, al
je 0x4216ca
mov dword [esi], eax
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov edx, edi
sub edx, ebx
mov eax, ebx
cmp edi, dword [esi + 0x14]
jne 0x4218b4
mov eax, edx
and eax, 1
mov ecx, edx
xor ecx, 1
lea eax, [ecx + eax*2]
mov ecx, edx
shr ecx, 1
mov dword [esi + 8], edx
mov dword [esi + 0x2c], ecx
add ecx, edx
cmp ecx, eax
ja 0x421776
mov ecx, eax
mov dword [esi + 0x24], ecx
push ecx
call fcn.00408640
add esp, 4
test ebx, ebx
je 0x4218a0
cmp eax, ebx
mov dword [esi + 0x18], ebx
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
mov dword [esi + 0x20], edi
jbe 0x42184f
cmp edi, eax
jbe 0x42184f
test edx, edx
je 0x42188c
mov ebx, dword [esi + 0x18]
mov edx, dword [esi + 8]
lea eax, [ebx + edx]
dec eax
mov ecx, dword [esi + 4]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x4217e6
neg edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x4217d0
add eax, edx
add ecx, edx
add edx, dword [esi + 8]
mov ebx, dword [esi + 0x18]
mov edi, ebx
sub edi, dword [esi + 0x20]
cmp edi, 0xfffffff8
ja 0x42188c
neg edx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edi]
mov byte [ecx + edi], bl
movzx ebx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], bl
movzx ebx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], bl
movzx ebx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], bl
movzx ebx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], bl
movzx ebx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], bl
movzx ebx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], bl
movzx ebx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x421800
jmp 0x42188c
mov ecx, edx
shr ecx, 2
mov edx, ebx
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, dword [esi + 8]
and edx, 0xfffffffc
add eax, edx
add edx, ebx
mov ebx, eax
mov ecx, dword [esi + 0x2c]
and ecx, 1
mov eax, edx
mov edi, ebx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test byte [esi + 8], 1
je 0x42188c
mov eax, dword [esi + 8]
and eax, 2
movzx ecx, byte [edx + eax]
mov byte [ebx + eax], cl
push dword [esi + 0xc]
call fcn.00408650
add esp, 4
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov edi, dword [esi + 0x20]
mov dword [esi + 0xc], eax
mov edx, dword [esi + 8]
lea ecx, [eax + edx]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x24]
add ecx, eax
mov dword [esi + 0x14], ecx
mov ecx, ebx
xor ecx, edi
not ebx
and ebx, edi
add ebx, ebx
sub ebx, ecx
cmp ebx, edx
jae 0x4218ee
lea edx, [eax + ebx]
inc edx
add eax, ebx
mov dword [esi + 4], eax
mov dword [esi + 8], eax
xor ecx, ecx
mov eax, edx
mov edi, edx
mov edx, dword [esi + 8]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, eax
xor ecx, ecx
mov eax, dword [esi + 4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0xc]
mov byte [eax + ebx], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
inc ecx
mov dword [esi + 4], ecx
mov dword [esi + 0x10], ecx
mov word [esi + 0x30], 0xb05
mov byte [esi + 0x32], 0x12
mov word [esi + 0x33], 0
mov ecx, 0x4173b6fe
mov edi, 0x3e8c4903
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi + ecx - 0x4173b6ce]
lea ebx, [ecx - 2]
xor ebx, edx
or ebx, edi
lea ebx, [edx + ebx*2]
add ebx, ecx
mov edx, ebx
xor edx, 0xec
or ebx, 0x13
and edx, ebx
add edx, ebx
inc dl
mov byte [esi + ecx - 0x4173b6ce], dl
inc ecx
dec edi
cmp ecx, 0x4173b703
jne 0x421920
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax + ecx]
mov dh, byte [esi + ecx + 0x30]
test dl, dl
je 0x421700
inc ecx
cmp dl, dh
je 0x421960
jmp 0x421700