Function at 0x420a90
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 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 [0x44c9f0]
call fcn.004401d0
add esp, 8
lea ecx, [esi + 0x2c]
lea edx, [esi + 0xb0]
push ecx
push edx
push dword [ebp + 0xc]
push dword [ebp + 8]
call eax
test eax, eax
je 0x420b2b
cmp dword [edi], 0xffffffff
jne 0x420bd6
jmp 0x421064
push 0x39be051d
push dword [0x44c9f0]
call fcn.004401d0
add esp, 8
mov dword [esi + 4], eax
push 0x847b02a2
push dword [0x44c9f0]
call fcn.004401d0
add esp, 8
mov dword [esi + 8], eax
push 0x2e775759
push dword [0x44c9f0]
call fcn.004401d0
add esp, 8
mov dword [esi + 0xc], eax
mov ebx, dword [esi + 0x2c]
jmp 0x420b83
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x420bb5
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [esi + 4]
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x420b80
push dword [ebx + 0x10]
push dword [ebx + 0x18]
push eax
call dword [esi + 8]
test eax, eax
je 0x420bb5
push dword [edi]
call dword [esi + 0xc]
mov dword [edi], 0xffffffff
jmp 0x420b80
push 0x18c354a9
push dword [0x44c9f0]
call fcn.004401d0
add esp, 8
push dword [esi + 0x2c]
call eax
cmp dword [edi], 0xffffffff
je 0x421064
mov dword [esi + 0x20], edi
mov edi, dword [ebp + 0x10]
mov eax, 0x8d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax - 0x8d], 0
lea eax, [eax + 1]
jne 0x420bf0
mov edx, dword [ebp + 8]
inc eax
cmp byte [edx], 0
lea edx, [edx + 1]
jne 0x420c00
mov edx, dword [ebp + 0xc]
nop
nop
nop
nop
inc eax
cmp byte [edx], 0
lea edx, [edx + 1]
jne 0x420c10
add eax, 3
and eax, 0xfffffffc
call fcn.004089a0
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 4], eax
mov esp, eax
mov dword [esi + 0x34], 0xe5e6f32c
mov dword [esi + 0x38], 0x170916f8
mov dword [esi + 0x3c], 0xf934300b
mov dword [esi + 0x40], 0xfb3232d1
mov word [esi + 0x44], 0xbbdc
mov dword [esi + 0x46], 0
mov byte [esi + 0x4a], 0
xor eax, eax
nop
nop
nop
mov ecx, eax
add cl, 0x73
xor cl, byte [esi + eax + 0x34]
add cl, 0xc1
mov byte [esi + eax + 0x34], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x17
jb 0x420c60
mov dword [esi + 0x10], 0x1cad8dd
mov byte [esi + 0x14], 0x20
mov dword [esi + 0x15], 0
mov word [esi + 0x19], 0
mov eax, 0x92ee8f9
mov edx, 6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esi + eax - 0x92ee8e9]
mov ebx, edx
xor ebx, eax
and ebx, ecx
xor ebx, eax
mov ecx, ebx
and ecx, 0x22
add ecx, ebx
or ebx, 0xdd
sub ecx, ebx
mov byte [esi + eax - 0x92ee8e9], cl
inc eax
dec edx
cmp eax, 0x92ee904
jne 0x420cb0
movzx eax, byte [esi + 0x10]
mov ebx, dword [esi + 4]
test al, al
je 0x420cfb
lea edx, [esi + 0x11]
mov ebx, dword [esi + 4]
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x420cf0
mov byte [ebx], 0
movzx eax, byte [edi]
test al, al
je 0x420d1d
inc edi
mov edx, dword [ebp + 8]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x420d10
jmp 0x420d20
mov edx, dword [ebp + 8]
mov byte [ebx], 0
movzx eax, byte [esi + 0x34]
test al, al
je 0x420d3b
lea ecx, [esi + 0x35]
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420d30
mov byte [ebx], 0
movzx eax, byte [edx]
test al, al
je 0x420d5b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x420d50
mov byte [ebx], 0x3a
mov dword [esi + 0x34], 0x91893d33
mov dword [esi + 0x38], 0x81819199
mov dword [esi + 0x3c], 0xb05e7583
mov dword [esi + 0x40], 0x84b79987
mov dword [esi + 0x44], 0xbd898289
mov dword [esi + 0x48], 0xbc6f2927
mov dword [esi + 0x4c], 0xb4b1b9ba
mov dword [esi + 0x50], 0xb3bbb084
mov dword [esi + 0x54], 0xb1a9674e
mov dword [esi + 0x58], 0xa1a1b1b9
mov dword [esi + 0x5c], 0xb40408a3
mov dword [esi + 0x60], 0xbc6da6a7
mov dword [esi + 0x64], 0xa0bbb5ab
mov dword [esi + 0x68], 0xe1ada6ad
mov dword [esi + 0x6c], 0xe2d13a1b
mov dword [esi + 0x70], 0xc8320b22
mov dword [esi + 0x74], 0x11dbd5d3
mov dword [esi + 0x78], 0xd6d634ed
mov dword [esi + 0x7c], 0x203dcad3
mov dword [esi + 0x80], 0x2435cccf
mov dword [esi + 0x84], 0x32fc724
mov dword [esi + 0x88], 0xe42bd028
mov dword [esi + 0x8c], 0x535908f9
mov dword [esi + 0x90], 0x32f7f4e5
mov dword [esi + 0x94], 0xece4f8ed
mov dword [esi + 0x98], 0xe2f7fef1
mov dword [esi + 0x9c], 0xe6f028d0
mov dword [esi + 0xa0], 0xe4e1d6ea
mov dword [esi + 0xa4], 0x22361de2
mov dword [esi + 0xa8], 0xba48441d
mov dword [esi + 0xac], 0xafb6
mov eax, 0x2579fb09
movzx ecx, byte [esi + eax - 0x2579fad5]
xor ecx, eax
mov edx, ecx
and edx, 0x52
xor ecx, 0xd2
lea ecx, [ecx + edx*2]
inc cl
mov byte [esi + eax - 0x2579fad5], cl
inc eax
cmp eax, 0x2579fb85
jne 0x420e60
inc ebx
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx]
test al, al
je 0x420eab
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420ea0
mov byte [ebx], 0
movzx eax, byte [esi + 0x34]
test al, al
je 0x420ecb
lea ecx, [esi + 0x35]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420ec0
mov byte [ebx], 0
mov edi, dword [esi + 4]
sub ebx, edi
push 0xd0026952
push dword [0x44c9f0]
call fcn.004401d0
add esp, 8
push 0
push ebx
push edi
mov edi, dword [esi + 0x20]
push dword [edi]
call eax
cmp eax, 0xffffffff
jne 0x420f38
cmp dword [edi], 0xffffffff
je 0x420f38
push 0x59ea2086
push dword [0x44c9f0]
call fcn.004401d0
add esp, 8
push 2
push dword [edi]
call eax
push 0x2e775759
push dword [0x44c9f0]
call fcn.004401d0
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
xor eax, eax
jmp 0x421437
cmp eax, 0xffffffff
je 0x421064
push 0x400
call fcn.00408ac0
add esp, 4
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
add eax, 0x400
mov dword [esi + 0x18], eax
lea eax, [esi + 0x10]
mov ecx, edi
push eax
call fcn.00421450
mov cl, 1
mov dword [esi + 8], ecx
test al, al
je 0x42141f
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov ebx, ecx
sub ebx, eax
cmp ecx, dword [esi + 0x18]
jne 0x4210d2
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
lea eax, [ebx + 1]
mov edi, ebx
shr edi, 1
add edi, ebx
cmp edi, eax
ja 0x420f9c
mov edi, eax
mov dword [esi + 0x24], eax
push edi
call fcn.00408ac0
add esp, 4
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4210c4
mov dword [esi + 0x28], edi
cmp eax, ecx
mov edx, dword [esi + 8]
mov dword [esi + 0xc], ebx
mov dword [esi + 0x1c], eax
jbe 0x42106b
cmp edx, eax
jbe 0x42106b
test ebx, ebx
je 0x4210b0
mov edx, dword [esi + 0xc]
lea eax, [ecx + edx]
dec eax
mov ecx, dword [esi + 0x1c]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x421002
neg edi
xor edx, edx
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x420fef
add eax, edx
add ecx, edx
add edx, dword [esi + 0xc]
mov edi, dword [esi + 4]
sub edi, dword [esi + 8]
cmp edi, 0xfffffff8
ja 0x4210b0
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 0x421015
jmp 0x4210b0
xor eax, eax
jmp 0x421437
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 + 4]
mov eax, ebx
not eax
or eax, 3
add eax, dword [esi + 0x24]
mov ecx, eax
shr ecx, 1
mov ebx, edx
mov dword [esi + 4], edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
test al, 1
je 0x4210b0
and eax, 0xfffffffe
movzx ecx, byte [edx + eax]
mov edx, dword [esi + 4]
mov byte [edx + eax], cl
push dword [esi + 0x10]
call fcn.00408ad0
add esp, 4
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 0x28]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x10], eax
lea ecx, [eax + ebx]
mov dword [esi + 0x14], ecx
add edi, eax
mov dword [esi + 0x18], edi
mov byte [eax + ebx], 0
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x14]
inc eax
mov dword [esi + 4], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x34], 0xbfbabdb0
mov dword [esi + 0x38], 0x92909c9f
mov dword [esi + 0x3c], 0x96969060
mov byte [esi + 0x40], 0x44
mov dword [esi + 0x41], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov edi, ecx
xor edi, 0x5fe8de87
mov edx, eax
and edx, 0x30
sub edx, edi
mov edi, 0x66
sub edi, edx
or edi, 0x7f
add edi, edx
add edi, 0x9a
add edx, 0x99
not edx
and edx, 0x80
or edx, edi
xor dl, byte [esi + ecx + 0x34]
add dl, 0x26
mov byte [esi + ecx + 0x34], dl
inc ecx
add eax, 2
cmp ecx, 0x11
jne 0x421110
movzx ebx, byte [esi + 0x34]
mov eax, dword [esi + 0xc]
mov dword [esi + 8], eax
test bl, bl
je 0x421198
lea edi, [esi + 0x34]
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov dword [esi + 8], ecx
jmp 0x421177
movzx ebx, byte [edi]
test bl, bl
je 0x421198
movzx edx, byte [eax]
test dl, dl
je 0x42140b
inc eax
inc edi
mov ecx, dword [esi + 8]
inc ecx
cmp dl, bl
je 0x421191
mov eax, ecx
mov dword [esi + 8], ecx
je 0x421170
lea edi, [esi + 0x34]
jmp 0x421170
cmp dword [esi + 8], 0
je 0x42140b
mov ecx, dword [esi + 0x20]
mov ebx, dword [esi + 0xc]
jmp 0x4211bb
cmp cl, dl
mov ecx, dword [esi + 0x20]
je 0x42141f
mov eax, ebx
mov edx, dword [esi + 4]
sub eax, edx
je 0x4211eb
mov dword [esi + 4], edx
mov dword [esi + 8], edx
mov edi, ebx
xor ecx, ecx
mov edx, dword [esi + 8]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
xor ecx, ecx
mov edi, ebx
mov edx, dword [esi + 4]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, dword [esi + 0x20]
add dword [esi + 0x14], eax
lea eax, [esi + 0x10]
push eax
call fcn.00421450
test al, al
je 0x421418
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov ebx, edx
sub ebx, ecx
cmp edx, dword [esi + 0x18]
mov dword [esi + 8], eax
je 0x421220
mov eax, ecx
jmp 0x421376
mov dword [esi + 0xc], edx
mov dword [esi + 4], ecx
lea eax, [ebx + 1]
mov edi, ebx
shr edi, 1
add edi, ebx
cmp edi, eax
ja 0x421235
mov edi, eax
mov dword [esi + 0x28], eax
push edi
call fcn.00408ac0
add esp, 4
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x421368
mov dword [esi + 0x30], edi
cmp eax, ecx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x24], eax
jbe 0x42130f
cmp edx, eax
jbe 0x42130f
test ebx, ebx
je 0x421354
mov edx, dword [esi + 0x1c]
lea eax, [ecx + edx]
dec eax
mov ecx, dword [esi + 0x24]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x4212a3
neg edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x421290
add eax, edx
add ecx, edx
add edx, dword [esi + 0x1c]
mov edi, dword [esi + 4]
sub edi, dword [esi + 0xc]
cmp edi, 0xfffffff8
ja 0x421354
neg edx
xor edi, edi
nop
nop
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 0x4212c0
jmp 0x421354
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 + 4]
mov eax, ebx
not eax
or eax, 3
add eax, dword [esi + 0x28]
mov ecx, eax
shr ecx, 1
mov ebx, edx
mov dword [esi + 4], edi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
test al, 1
je 0x421354
and eax, 0xfffffffe
movzx ecx, byte [edx + eax]
mov edx, dword [esi + 4]
mov byte [edx + eax], cl
push dword [esi + 0x10]
call fcn.00408ad0
add esp, 4
mov ebx, dword [esi + 0x1c]
mov edi, dword [esi + 0x30]
mov eax, dword [esi + 0x24]
mov dword [esi + 0x10], eax
lea ecx, [eax + ebx]
mov dword [esi + 0x14], ecx
add edi, eax
mov dword [esi + 0x18], edi
mov byte [eax + ebx], 0
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x14]
inc eax
mov dword [esi + 4], eax
mov dword [esi + 0x14], eax
mov word [esi + 0x34], 0x3735
mov byte [esi + 0x36], 0xce
mov word [esi + 0x37], 0
mov edi, 0xb2
nop
movzx edx, byte [esi + edi - 0x7e]
mov ebx, edx
and ebx, edi
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xbd
mul cl
mov ecx, eax
add cl, dl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edi
add al, 0x86
mov byte [esi + edi - 0x7e], al
inc edi
cmp edi, 0xb7
jne 0x4213a0
xor eax, eax
mov ebx, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [ebx + eax]
movzx edx, byte [esi + eax + 0x34]
test cl, cl
je 0x4211b0
inc eax
cmp cl, dl
je 0x4213f0
jmp 0x4211b0
mov ecx, dword [esi + 0x20]
push 0x3ea
call fcn.004207f0
mov dword [esi + 8], 0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x421434
cmp eax, dword [esi + 0x14]
je 0x421434
push eax
call fcn.00408ad0
add esp, 4
mov eax, dword [esi + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc