Function at 0x422d20
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, 0xfffffff8
sub esp, 0xa08
mov dword [esp + 0x60], 0x436f416d
mov dword [esp + 0x64], 0x47d245d1
mov dword [esp + 0x68], 0x4ba649a1
mov dword [esp + 0x6c], 0x4fda4da5
mov dword [esp + 0x70], 0x735f71e9
mov dword [esp + 0x74], 0x77e375e7
mov dword [esp + 0x78], 0x7b57799a
mov dword [esp + 0x7c], 0x7fe77de8
mov dword [esp + 0x80], 0x638761f0
mov dword [esp + 0x84], 0x678865b9
mov dword [esp + 0x88], 0x6bfe698d
mov dword [esp + 0x8c], 0x6f816dfb
mov dword [esp + 0x90], 0x13f91182
mov dword [esp + 0x94], 0x17fb153a
mov dword [esp + 0x98], 0x1bf019f7
mov dword [esp + 0x9c], 0x1ff31df3
mov dword [esp + 0xa0], 0x3cc012e
mov dword [esp + 0xa4], 0x79205e1
mov dword [esp + 0xa8], 0xbe5099f
mov dword [esp + 0xac], 0xfe50d9e
mov dword [esp + 0xb0], 0x33d731c3
mov dword [esp + 0xb4], 0x37a035a6
mov dword [esp + 0xb8], 0x3bd939d1
mov dword [esp + 0xbc], 0x3f3e3dd9
mov eax, 0x66133b10
mov ecx, 0x99ecc4ef
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x66133ab0]
mov ebx, eax
and ebx, edx
add ebx, ebx
sub ebx, edx
add ebx, ecx
and ebx, eax
add bl, bl
sub dl, bl
movzx edx, dl
add edx, eax
add dl, 0xb0
mov byte [esp + eax - 0x66133ab0], dl
inc eax
dec ecx
cmp eax, 0x66133b70
jne 0x422e30
lea edi, [esp + 0x4a0]
lea eax, [esp + 0x60]
mov ecx, 0x18
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x500]
lea eax, [esp + 0xc0]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x60], 0x2c2d2e2f
mov word [esp + 0x64], 0
mov eax, 0xf8a5adb8
mov ecx, 0x75a5247
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x75a52a8]
mov edi, eax
and edi, 0xe820ac97
mov edx, ecx
and edx, 0x6181028
or edx, edi
mov edi, eax
or edi, esi
xor edx, esi
xor edx, 0x169d1128
and edx, edi
mov esi, edx
and esi, 0x20818967
xor edx, 0x24c39b67
lea esi, [edx + esi*2]
and edx, 1
or esi, 1
add edx, esi
add edx, 0x17840050
mov esi, edx
xor esi, 0x50
and edx, 0x2f
add edx, edx
sub edx, esi
mov byte [esp + eax + 0x75a52a8], dl
inc eax
dec ecx
cmp eax, 0xf8a5adbe
jne 0x422eb0
mov eax, dword [esp + 0x60]
mov ecx, dword [0x451440]
test ecx, ecx
je 0x422f64
xor edx, edx
mov esi, dword [0x451444]
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9abdb589
je 0x422f40
inc edx
cmp ecx, edx
jne 0x422f30
jmp 0x422f64
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x422f64
lea eax, [esp + 0x28]
push eax
push 0
push 0
push 5
push 4
push ecx
push dword [0x451448]
call fcn.004417a0
add esp, 0x1c
mov dword [esp + 0x60], 0xdf9e999c
mov byte [esp + 0x64], 0
mov ecx, 0xaffa8da
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0xaffa87a]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0xbe
mov byte [esp + ecx - 0xaffa87a], dl
inc ecx
cmp ecx, 0xaffa8df
jne 0x422f80
cmp eax, dword [esp + 0x60]
jne 0x423070
push dword [esp + 0x28]
call fcn.0043e6f0
add esp, 4
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x60], 0x2c2d2e2f
mov word [esp + 0x64], 0
mov eax, 0xf8a5adb8
mov edx, 0x75a5247
nop
movzx edi, byte [esp + eax + 0x75a52a8]
mov ebx, eax
and ebx, 0xe820ac97
mov esi, edx
and esi, 0x6181028
or esi, ebx
mov ebx, eax
or ebx, edi
xor esi, edi
xor esi, 0x169d1128
and esi, ebx
mov edi, esi
and edi, 0x20818967
xor esi, 0x24c39b67
lea edi, [esi + edi*2]
and esi, 1
or edi, 1
lea ebx, [edi + esi]
add ebx, 0x17840050
mov esi, ebx
xor esi, 0x50
and ebx, 0x2f
add ebx, ebx
sub ebx, esi
mov byte [esp + eax + 0x75a52a8], bl
inc eax
dec edx
cmp eax, 0xf8a5adbe
jne 0x422fe0
mov eax, dword [esp + 0x60]
mov edx, dword [0x451440]
test edx, edx
je 0x4230a0
xor esi, esi
mov edi, dword [0x451444]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x9abdb589
je 0x42307e
inc esi
cmp edx, esi
jne 0x423060
jmp 0x4230a0
xor ecx, ecx
xor edx, edx
xor esi, esi
mov ebx, dword [ebp + 0x14]
jmp 0x423708
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x4230a0
push 0
push ecx
push dword [esp + 0x28]
push 5
push 4
push edx
push dword [0x451448]
call fcn.004417a0
add esp, 0x1c
test eax, eax
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
js 0x4236d8
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov dword [esp + 0xc], 0
mov edx, ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
jmp 0x4230e5
mov ecx, ebx
call fcn.0043ec30
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
test eax, eax
je 0x4236f0
mov ecx, dword [edx + eax + 0x3c]
add eax, edx
mov dword [esp + 0x18], eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [ecx + eax]
movzx esi, word [edi + eax]
test dx, dx
je 0x423115
add eax, 2
cmp dx, si
je 0x423100
cmp dx, si
jne 0x4230d7
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x44]
mov dword [ebx + 8], eax
mov eax, dword [ecx + 0xdc]
mov dword [ebx + 0xc], eax
mov ecx, ebx
push 0x410
call fcn.0043eab0
test eax, eax
js 0x4230d7
mov dword [esp + 0x24], 0
mov ecx, dword [ebx]
mov dword [esp + 0x60], 0x2c2d2e2f
mov word [esp + 0x64], 0
mov eax, 0xf8a5adb8
mov edx, 0x75a5247
movzx edi, byte [esp + eax + 0x75a52a8]
mov ebx, eax
and ebx, 0xe820ac97
mov esi, edx
and esi, 0x6181028
or esi, ebx
mov ebx, eax
or ebx, edi
xor esi, edi
xor esi, 0x169d1128
and esi, ebx
mov edi, esi
and edi, 0x20818967
xor esi, 0x24c39b67
lea edi, [esi + edi*2]
and esi, 1
or edi, 1
lea ebx, [edi + esi]
add ebx, 0x17840050
mov esi, ebx
xor esi, 0x50
and ebx, 0x2f
add ebx, ebx
sub ebx, esi
mov byte [esp + eax + 0x75a52a8], bl
inc eax
dec edx
cmp eax, 0xf8a5adbe
jne 0x423160
mov eax, dword [esp + 0x60]
mov edx, dword [0x451440]
test edx, edx
je 0x423220
xor esi, esi
mov edi, dword [0x451444]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xae6e2b0b
je 0x4231f0
inc esi
cmp edx, esi
jne 0x4231e0
jmp 0x423220
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x423220
lea eax, [esp + 0x24]
push eax
push 0
push 0
push 0x2b
push ecx
push 5
push edx
push dword [0x451448]
call fcn.004417a0
add esp, 0x20
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 8], eax
mov dword [esp + 0x60], 0xcf0e090c
lea eax, [esp + 0x64]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0xb335f77e
mov edi, 0x4cca0881
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edi - 0x4cca0821]
lea ebx, [edi - 0x4cca07ff]
and ebx, esi
mov edx, ebx
and edx, 0xffffff8d
mov ecx, ebx
and ecx, 2
or ebx, 2
imul ebx, ecx
xor ecx, 2
imul ecx, edx
add ebx, ecx
lea ecx, [eax + ebx]
mov edx, edi
sub edx, ebx
and edx, esi
not esi
and esi, ecx
sub edx, esi
mov ecx, edx
not ecx
or ecx, 0x800dd575
lea esi, [edx + ecx]
inc esi
mov ecx, esi
and ecx, 2
mov ebx, esi
or esi, 2
imul esi, ecx
xor ecx, 2
and ebx, 0xfd
imul ebx, ecx
xor edx, 0x75
add edx, esi
add edx, ebx
inc dl
mov byte [esp + edi - 0x4cca0821], dl
dec eax
inc edi
cmp eax, 0xb335f777
jne 0x423250
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x60]
jne 0x4233a0
mov eax, dword [esp + 0x24]
add eax, 2
push eax
call fcn.0043e6f0
add esp, 4
mov dword [esp + 8], eax
mov edx, dword [esp + 0x24]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x60], 0x2c2d2e2f
mov word [esp + 0x64], 0
mov eax, 0xf8a5adb8
mov edi, 0x75a5247
nop
movzx ebx, byte [esp + eax + 0x75a52a8]
mov ecx, eax
and ecx, 0xe820ac97
mov esi, edi
and esi, 0x6181028
or esi, ecx
mov ecx, eax
or ecx, ebx
xor esi, ebx
xor esi, 0x169d1128
and esi, ecx
mov ecx, esi
and ecx, 0x20818967
xor esi, 0x24c39b67
lea ecx, [esi + ecx*2]
and esi, 1
or ecx, 1
lea ebx, [ecx + esi]
add ebx, 0x17840050
mov ecx, ebx
xor ecx, 0x50
and ebx, 0x2f
add ebx, ebx
sub ebx, ecx
mov byte [esp + eax + 0x75a52a8], bl
inc eax
dec edi
cmp eax, 0xf8a5adbe
jne 0x423310
mov eax, dword [esp + 0x60]
mov esi, dword [0x451440]
test esi, esi
je 0x4233d1
add edx, 2
xor edi, edi
mov ebx, dword [0x451444]
nop
nop
nop
cmp dword [ebx + edi*8], 0xae6e2b0b
je 0x4233ab
inc edi
cmp esi, edi
jne 0x423390
jmp 0x4233d1
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
jmp 0x423501
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
je 0x4233d1
push 0
push edx
push dword [esp + 0x10]
push 0x2b
push dword [esp + 0x2c]
push 5
push esi
push dword [0x451448]
call fcn.004417a0
add esp, 0x20
test eax, eax
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
js 0x4234f2
mov ecx, dword [esp + 8]
movzx eax, word [ecx]
shr eax, 1
mov ecx, dword [ecx + 4]
not eax
mov edx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
je 0x423419
movzx esi, word [edi + edx*2 + 2]
cmp si, word [ecx + edx*2 + 2]
jne 0x4234f2
inc edx
test si, si
jne 0x423400
mov ecx, ebx
call fcn.0043f150
cmp eax, 2
mov edi, dword [ebp + 8]
jne 0x4234f5
mov ecx, ebx
push 0
push 0x30
lea eax, [esp + 0x38]
push eax
push 0
call fcn.0043ef50
test eax, eax
js 0x4234f5
mov ecx, ebx
push 0
push 0
push 0x28
lea eax, [esp + 0x684]
push eax
push dword [esp + 0x4c]
push dword [esp + 0x4c]
call fcn.0043f520
test eax, eax
js 0x4234f5
mov ecx, ebx
push 0
push 0
push 0x80
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x6ac]
push dword [esp + 0x6ac]
call fcn.0043f520
test eax, eax
js 0x4234f5
movzx eax, word [esp + 0xd2]
push eax
call fcn.0043e6f0
add esp, 4
mov esi, eax
movzx eax, word [esp + 0xd2]
mov ecx, ebx
push 0
push 0
push eax
push esi
push dword [esp + 0xec]
push dword [esp + 0xec]
call fcn.0043f520
test eax, eax
js 0x4236ca
movzx edi, word [esp + 0x4a0]
mov dword [esp + 4], esi
mov eax, esi
test di, di
je 0x423554
lea ecx, [esp + 0x4a0]
mov eax, dword [esp + 4]
mov edx, eax
jmp 0x423528
mov edi, dword [ebp + 8]
push dword [esp + 8]
call fcn.0043e770
add esp, 4
mov eax, dword [esp + 0x14]
or eax, dword [esp + 0x10]
je 0x4230d0
cmp dword [esp + 0xc], 0
je 0x4230d0
jmp 0x4236f0
movzx edi, word [ecx]
test di, di
je 0x423554
movzx esi, word [edx]
test si, si
je 0x4236c3
add edx, 2
add ecx, 2
lea ebx, [eax + 2]
cmp si, di
je 0x423546
mov eax, ebx
mov edx, ebx
mov ebx, dword [ebp + 0x14]
je 0x423520
lea ecx, [esp + 0x4a0]
jmp 0x423520
test eax, eax
mov edi, dword [ebp + 8]
je 0x4236c6
mov ecx, ebx
push 0
push 0
push 0x20
lea eax, [esp + 0x62c]
push eax
push dword [esp + 0x6a4]
push dword [esp + 0x6a4]
call fcn.0043f520
test eax, eax
js 0x4236c6
mov eax, dword [esp + 0x690]
mov ecx, dword [esp + 0x694]
add eax, 0x10
mov dword [esp + 0x1c], eax
adc ecx, 0
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x630]
mov edx, dword [esp + 0x634]
mov dword [esp + 0x504], edx
mov dword [esp + 0x500], eax
jmp 0x4235fb
cmp cx, dx
je 0x423699
push edi
call fcn.0043e770
add esp, 4
mov eax, dword [esp + 0x500]
mov edx, dword [esp + 0x504]
mov ecx, edx
xor ecx, dword [esp + 0x2c]
mov esi, eax
xor esi, dword [esp + 0x1c]
or esi, ecx
mov edi, dword [ebp + 8]
je 0x4236c6
mov ecx, ebx
push 0
push 0
push 0x68
lea esi, [esp + 0x50c]
push esi
push edx
push eax
call fcn.0043f520
test eax, eax
js 0x4236c6
movzx eax, word [esp + 0x55a]
push eax
call fcn.0043e6f0
add esp, 4
mov edi, eax
movzx eax, word [esp + 0x55a]
mov ecx, ebx
push 0
push 0
push eax
push edi
push dword [esp + 0x574]
push dword [esp + 0x574]
call fcn.0043f520
test eax, eax
js 0x4235cd
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp + 0x10]
movzx ecx, word [ecx + eax]
lea edx, [ecx - 0x41]
cmp dx, 0x1a
jae 0x423673
or ecx, 0x20
movzx edx, word [edi + eax]
lea esi, [edx - 0x41]
cmp si, 0x1a
jae 0x423683
or edx, 0x20
test cx, cx
je 0x4235c4
add eax, 2
cmp cx, dx
je 0x423660
jmp 0x4235c4
mov eax, dword [esp + 0x540]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x530]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x534]
mov dword [esp + 0x10], eax
push edi
call fcn.0043e770
add esp, 4
mov edi, dword [ebp + 8]
mov esi, dword [esp + 4]
push esi
call fcn.0043e770
add esp, 4
jmp 0x4234f5
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
push dword [esp + 0x20]
call fcn.0043e770
add esp, 4
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 0x18]
mov dword [eax], edx
mov dword [eax + 4], esi
mov eax, dword [ebp + 0x1c]
mov dword [eax], ecx
mov ecx, ebx
call fcn.0043ec20
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret