Function at 0x4203b0
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 [0x44bb14]
call fcn.004400a0
add esp, 8
lea ecx, [esi + 0x28]
lea edx, [esi + 0xb0]
push ecx
push edx
push dword [ebp + 0xc]
push dword [ebp + 8]
call eax
test eax, eax
je 0x42044b
cmp dword [edi], 0xffffffff
jne 0x4204f5
jmp 0x4209b1
push 0x39be051d
push dword [0x44bb14]
call fcn.004400a0
add esp, 8
mov dword [esi], eax
push 0x847b02a2
push dword [0x44bb14]
call fcn.004400a0
add esp, 8
mov dword [esi + 4], eax
push 0x2e775759
push dword [0x44bb14]
call fcn.004400a0
add esp, 8
mov dword [esi + 8], eax
mov ebx, dword [esi + 0x28]
jmp 0x4204a3
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x4204d4
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [esi]
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x4204a0
push dword [ebx + 0x10]
push dword [ebx + 0x18]
push eax
call dword [esi + 4]
test eax, eax
je 0x4204d4
push dword [edi]
call dword [esi + 8]
mov dword [edi], 0xffffffff
jmp 0x4204a0
push 0x18c354a9
push dword [0x44bb14]
call fcn.004400a0
add esp, 8
push dword [esi + 0x28]
call eax
cmp dword [edi], 0xffffffff
je 0x4209b1
mov ecx, dword [ebp + 0x10]
mov eax, 0x8d
nop
nop
nop
cmp byte [ecx + eax - 0x8d], 0
lea eax, [eax + 1]
jne 0x420500
mov ecx, dword [ebp + 8]
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x420510
mov ecx, dword [ebp + 0xc]
nop
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x420520
mov dword [esi + 0x1c], edi
add eax, 3
and eax, 0xfffffffc
call fcn.00408260
mov eax, esp
and eax, 0xfffffff0
mov dword [esi], eax
mov esp, eax
mov dword [esi + 0x2c], 0xb0a0128
mov dword [esi + 0x30], 0x21232604
mov dword [esi + 0x34], 0x17c8c421
mov dword [esi + 0x38], 0x1d66626f
mov word [esi + 0x3c], 0xd938
mov dword [esi + 0x3e], 0
mov word [esi + 0x42], 0
mov eax, 0xd62d5c2e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esi + eax + 0x29d2a3fe]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x1a
mov byte [esi + eax + 0x29d2a3fe], cl
inc eax
cmp eax, 0xd62d5c46
jne 0x420580
mov dword [esi + 0xc], 0xb37e4c4f
mov byte [esi + 0x10], 0xac
mov dword [esi + 0x11], 0
mov word [esi + 0x15], 0
mov ecx, 0xdc
mov edx, 0x5d927523
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esi + ecx - 0xd0]
lea ebx, [edx - 0x5d927520]
and ebx, 0xd
mov eax, ecx
and eax, 0xf2
or eax, ebx
mov ebx, edx
or ebx, edi
xor eax, 0xf2
and eax, edi
not ebx
or ebx, eax
mov eax, ebx
xor eax, 0x4c
mov edi, ebx
or edi, 0x33
and edi, eax
xor ebx, 0xb3
lea eax, [ebx + edi*2]
inc al
mov byte [esi + ecx - 0xd0], al
inc ecx
dec edx
cmp ecx, 0xe7
jne 0x4205d0
movzx eax, byte [esi + 0xc]
mov ebx, dword [esi]
test al, al
je 0x42063b
lea edx, [esi + 0xd]
mov ebx, dword [esi]
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x420630
mov byte [ebx], 0
mov ecx, dword [ebp + 0x10]
movzx eax, byte [ecx]
test al, al
je 0x42065d
inc ecx
mov edx, dword [ebp + 8]
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420650
jmp 0x420660
mov edx, dword [ebp + 8]
mov byte [ebx], 0
movzx eax, byte [esi + 0x2c]
test al, al
je 0x42067b
lea ecx, [esi + 0x2d]
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420670
mov byte [ebx], 0
movzx eax, byte [edx]
test al, al
je 0x42069b
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 0x420690
mov byte [ebx], 0x3a
mov dword [esi + 0x2c], 0x43affbe5
mov dword [esi + 0x30], 0x535f4f53
mov dword [esi + 0x34], 0x449a8355
mov dword [esi + 0x38], 0x70756769
mov dword [esi + 0x3c], 0x7f6f6a63
mov dword [esi + 0x40], 0x788dc7d9
mov dword [esi + 0x44], 0x68677f7e
mov dword [esi + 0x48], 0x61617c68
mov dword [esi + 0x4c], 0x638fb1aa
mov dword [esi + 0x50], 0x737f6f73
mov dword [esi + 0x54], 0x88d0cc75
mov dword [esi + 0x58], 0x78538689
mov dword [esi + 0x5c], 0x9471838d
mov dword [esi + 0x60], 0x9383868f
mov dword [esi + 0x64], 0x9287625d
mov dword [esi + 0x68], 0x647e554e
mov dword [esi + 0x6c], 0x43918385
mov dword [esi + 0x70], 0x668a688f
mov dword [esi + 0x74], 0x747b9265
mov dword [esi + 0x78], 0x507bb0b1
mov dword [esi + 0x7c], 0x714db150
mov dword [esi + 0x80], 0x5041ac44
mov dword [esi + 0x84], 0x11f4ca3
mov dword [esi + 0x88], 0x62b5b847
mov dword [esi + 0x8c], 0x40b0bc4f
mov dword [esi + 0x90], 0xb2b5beab
mov dword [esi + 0x94], 0xb6446ca4
mov dword [esi + 0x98], 0xd0cfd6d6
mov dword [esi + 0x9c], 0x12021bd6
mov dword [esi + 0xa0], 0x7a64781f
mov word [esi + 0xa4], 0x6962
mov word [esi + 0xaa], 0
mov dword [esi + 0xa6], 0
mov eax, 0x94d773d4
nop
nop
nop
nop
movzx ecx, byte [esi + eax + 0x6b288c58]
xor ecx, eax
mov edx, ecx
not edx
and edx, 0x25
and ecx, 0xda
sub ecx, edx
inc cl
mov byte [esi + eax + 0x6b288c58], cl
inc eax
cmp eax, 0x94d77454
jne 0x4207b0
inc ebx
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx]
test al, al
je 0x4207fb
inc ecx
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 0x4207f0
mov byte [ebx], 0
movzx eax, byte [esi + 0x2c]
test al, al
je 0x42081b
lea ecx, [esi + 0x2d]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420810
mov byte [ebx], 0
mov edi, dword [esi]
sub ebx, edi
push 0xd0026952
push dword [0x44bb14]
call fcn.004400a0
add esp, 8
push 0
push ebx
push edi
mov edi, dword [esi + 0x1c]
push dword [edi]
call eax
cmp eax, 0xffffffff
jne 0x420887
cmp dword [edi], 0xffffffff
je 0x420887
push 0x59ea2086
push dword [0x44bb14]
call fcn.004400a0
add esp, 8
push 2
push dword [edi]
call eax
push 0x2e775759
push dword [0x44bb14]
call fcn.004400a0
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
xor eax, eax
jmp 0x420d93
cmp eax, 0xffffffff
je 0x4209b1
push 0x400
call fcn.00408380
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.00420da0
mov cl, 1
mov dword [esi + 4], ecx
test al, al
je 0x420d7b
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov ebx, ecx
sub ebx, eax
cmp ecx, dword [esi + 0x14]
jne 0x420a19
mov dword [esi + 4], ecx
mov dword [esi], eax
lea eax, [ebx + 1]
mov ecx, ebx
shr ecx, 1
mov dword [esi + 0x20], ecx
lea edi, [ecx + ebx]
cmp edi, eax
ja 0x4208ee
mov edi, eax
push edi
call fcn.00408380
add esp, 4
mov ecx, dword [esi]
test ecx, ecx
je 0x420a0b
mov dword [esi + 0x24], edi
cmp eax, ecx
mov dword [esi + 8], ebx
mov edx, dword [esi + 4]
mov dword [esi + 0x18], eax
jbe 0x4209b8
cmp edx, eax
jbe 0x4209b8
test ebx, ebx
je 0x4209f7
mov edx, dword [esi + 8]
lea eax, [ecx + edx]
dec eax
mov ecx, dword [esi + 0x18]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x420950
neg edi
xor edx, edx
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x42093d
add eax, edx
add ecx, edx
add edx, dword [esi + 8]
mov edi, dword [esi]
sub edi, dword [esi + 4]
cmp edi, 0xfffffff8
ja 0x4209f7
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 0x420962
jmp 0x4209f7
xor eax, eax
jmp 0x420d93
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 + 0x20]
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 0x4209f7
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.00408390
add esp, 4
mov ebx, dword [esi + 8]
mov edi, dword [esi + 0x24]
mov eax, dword [esi + 0x18]
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 + 8], eax
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x2c], 0xc9cecfbc
mov dword [esi + 0x30], 0x2a2c2829
mov dword [esi + 0x34], 0x2622241c
mov byte [esi + 0x38], 0x70
mov dword [esi + 0x39], 0
mov dword [esi + 0x3c], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esi + ecx + 0x2c]
lea eax, [ecx + 0x749d26bf]
mov ebx, 0x40
sub ebx, ecx
and ebx, 0x67
mov edx, eax
and edx, 0x18
or edx, ebx
xor edx, 0x18
mov ebx, edi
not ebx
or edx, ebx
add edx, edi
inc edx
and ebx, eax
or ebx, edx
mov eax, ebx
and eax, 1
xor ebx, 1
lea eax, [ebx + eax*2]
add al, 0x44
mov byte [esi + ecx + 0x2c], al
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
cmp ecx, 0x14
jb 0x420a60
movzx edx, byte [esi + 0x2c]
mov eax, dword [esi + 8]
mov dword [esi + 4], eax
test dl, dl
mov ecx, dword [esi + 0x1c]
je 0x420afc
lea ebx, [esi + 0x2c]
mov edi, dword [esi + 8]
mov eax, edi
mov dword [esi + 4], edi
jmp 0x420ada
movzx edx, byte [ebx]
test dl, dl
mov ecx, dword [esi + 0x1c]
je 0x420afc
mov dh, byte [eax]
test dh, dh
je 0x420d6a
inc eax
inc ebx
mov ecx, dword [esi + 4]
lea edi, [ecx + 1]
cmp dh, dl
je 0x420af5
mov eax, edi
mov dword [esi + 4], edi
je 0x420ad0
lea ebx, [esi + 0x2c]
jmp 0x420ad0
cmp dword [esi + 4], 0
je 0x420d6a
mov ebx, dword [esi + 8]
mov eax, dword [esi]
jmp 0x420b1d
cmp dl, dh
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi]
je 0x420d7b
mov edx, ebx
sub edx, eax
je 0x420b44
mov dword [esi], eax
mov dword [esi + 4], eax
mov edi, ebx
xor ecx, ecx
mov eax, dword [esi + 4]
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
xor ecx, ecx
mov edi, ebx
mov eax, dword [esi]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esi + 0x1c]
add dword [esi + 0x10], edx
lea eax, [esi + 0xc]
push eax
call fcn.00420da0
test al, al
je 0x420d74
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov ebx, ecx
sub ebx, eax
cmp ecx, dword [esi + 0x14]
jne 0x420cc3
mov dword [esi + 8], 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 0x420b83
mov edi, eax
push edi
call fcn.00408380
add esp, 4
mov ecx, dword [esi]
test ecx, ecx
je 0x420cb5
mov dword [esi + 0xac], edi
cmp eax, ecx
mov dword [esi + 0x18], ebx
mov edx, dword [esi + 8]
mov dword [esi + 0x20], eax
jbe 0x420c5f
cmp edx, eax
jbe 0x420c5f
test ebx, ebx
je 0x420c9e
mov edx, dword [esi + 0x18]
lea eax, [ecx + edx]
dec eax
mov ecx, dword [esi + 0x20]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x420bf3
neg edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x420be0
add eax, edx
add ecx, edx
add edx, dword [esi + 0x18]
mov edi, dword [esi]
sub edi, dword [esi + 8]
cmp edi, 0xfffffff8
ja 0x420c9e
neg edx
xor edi, edi
nop
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 0x420c10
jmp 0x420c9e
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 0x420c9e
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.00408390
add esp, 4
mov ebx, dword [esi + 0x18]
mov edi, dword [esi + 0xac]
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 + 8], eax
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi], eax
mov dword [esi + 0x10], eax
mov word [esi + 0x2c], 0x4d4f
mov byte [esi + 0x2e], 0x7a
mov dword [esi + 0x2f], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
xor eax, 0x1ddc4bf9
lea edx, [ecx + ecx]
mov ebx, edx
and ebx, 0xc
sub ebx, eax
mov edi, 0x59c1919b
sub edi, ebx
mov eax, 0x9b
sub eax, ebx
movzx ebx, byte [esi + ecx + 0x2c]
or edi, ebx
and eax, ebx
not edi
or edi, eax
mov eax, edi
and eax, 0x68
xor edi, 0xe8
lea eax, [edi + eax*2]
inc al
mov byte [esi + ecx + 0x2c], al
xor ecx, 0xbb2cfc44
and edx, 8
add ecx, edx
add ecx, 0x44d303bd
cmp ecx, 7
jb 0x420cf0
xor ecx, ecx
mov ebx, dword [esi + 8]
nop
nop
nop
nop
nop
movzx edx, byte [ebx + ecx]
mov dh, byte [esi + ecx + 0x2c]
test dl, dl
je 0x420b10
inc ecx
cmp dl, dh
je 0x420d50
jmp 0x420b10
push 0x3ea
call fcn.00420110
mov dword [esi + 4], 0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x420d90
cmp eax, dword [esi + 0x10]
je 0x420d90
push eax
call fcn.00408390
add esp, 4
mov eax, dword [esi + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc