Function at 0x422130
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], 0xc999cb9f
mov dword [esp + 0x64], 0xc54ac743
mov dword [esp + 0x68], 0xc156c353
mov dword [esp + 0x6c], 0xfd72ff57
mov dword [esp + 0x70], 0xf9a9fb7b
mov dword [esp + 0x74], 0xf57df775
mov dword [esp + 0x78], 0xf1a1f36a
mov dword [esp + 0x7c], 0xed69ef7c
mov dword [esp + 0x80], 0xe971eb7c
mov dword [esp + 0x84], 0xe574e7ab
mov dword [esp + 0x88], 0xe16ee37f
mov dword [esp + 0x8c], 0x1d8f1f69
mov dword [esp + 0x90], 0x198f1b92
mov dword [esp + 0x94], 0x1585174a
mov dword [esp + 0x98], 0x11841385
mov dword [esp + 0x9c], 0xd9d0f81
mov dword [esp + 0xa0], 0x9780b5e
mov dword [esp + 0xa4], 0x58a0793
mov dword [esp + 0xa8], 0x193038d
mov dword [esp + 0xac], 0x3dab3f8e
mov dword [esp + 0xb0], 0x39a13b51
mov dword [esp + 0xb4], 0x35bc37b6
mov dword [esp + 0xb8], 0x31af33a3
mov dword [esp + 0xbc], 0x2d2e2fab
mov byte [esp + 0xc2], 0
mov word [esp + 0xc0], 0
mov ebx, dword [ebp + 8]
lea esi, [esp + 0xc0]
mov ecx, 0xc1eed053
movzx eax, byte [esp + ecx + 0x3e11300d]
mov edx, eax
and edx, ecx
add dl, dl
sub al, dl
movzx eax, al
add eax, ecx
add al, 0x61
mov byte [esp + ecx + 0x3e11300d], al
inc ecx
cmp ecx, 0xc1eed0b6
jne 0x422250
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]
xor edx, edx
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x60], 0xbcbdbebf
mov word [esp + 0x64], 0
mov byte [esp + 0x66], 0
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
add al, 0x20
xor al, byte [esp + edx + 0x60]
add al, 0x60
mov byte [esp + edx + 0x60], al
inc edx
cmp edx, 7
jne 0x4222c0
mov eax, dword [esp + 0x60]
mov ecx, dword [0x44f9d8]
test ecx, ecx
je 0x422324
xor edx, edx
mov esi, dword [0x44f9dc]
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xc85f7986
je 0x422300
inc edx
cmp ecx, edx
jne 0x4222f0
jmp 0x422324
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x422324
lea eax, [esp + 0x28]
push eax
push 0
push 0
push 5
push 4
push dword [0x44f9e0]
push ecx
call fcn.00440440
add esp, 0x1c
cmp eax, 0xc0000004
jne 0x4223a0
push dword [esp + 0x28]
call fcn.0043d7a0
add esp, 4
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x60], 0xbcbdbebf
mov word [esp + 0x64], 0
mov byte [esp + 0x66], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
add dl, 0x20
xor dl, byte [esp + eax + 0x60]
add dl, 0x60
mov byte [esp + eax + 0x60], dl
inc eax
cmp eax, 7
jne 0x422360
mov eax, dword [esp + 0x60]
mov edx, dword [0x44f9d8]
test edx, edx
je 0x4223cd
xor esi, esi
mov edi, dword [0x44f9dc]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xc85f7986
je 0x4223ab
inc esi
cmp edx, esi
jne 0x422390
jmp 0x4223cd
xor ecx, ecx
xor edx, edx
xor esi, esi
jmp 0x422901
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x4223cd
push 0
push ecx
push dword [esp + 0x28]
push 5
push 4
push dword [0x44f9e0]
push edx
call fcn.00440440
add esp, 0x1c
test eax, eax
js 0x4228d1
mov esi, dword [esp + 0x20]
mov eax, dword [esi]
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
jmp 0x42240f
call fcn.0043dca0
mov eax, dword [esi]
test eax, eax
je 0x4228e9
mov ecx, dword [esi + eax + 0x3c]
add esi, eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [ecx + eax]
movzx edi, word [ebx + eax]
test dx, dx
je 0x422435
add eax, 2
cmp dx, di
je 0x422420
cmp dx, di
jne 0x422405
mov eax, dword [esi + 0x44]
mov edi, dword [ebp + 0x14]
mov dword [edi + 8], eax
mov eax, dword [esi + 0xdc]
mov dword [edi + 0xc], eax
mov ecx, edi
push 0x410
call fcn.0043db50
test eax, eax
js 0x422405
mov dword [esp + 0x24], 0
mov edi, dword [edi]
mov dword [esp + 0x60], 0xbcbdbebf
lea eax, [esp + 0x64]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
mov ecx, eax
add cl, 0x20
xor cl, byte [esp + eax + 0x60]
add cl, 0x60
mov byte [esp + eax + 0x60], cl
inc eax
cmp eax, 7
jne 0x422480
mov eax, dword [esp + 0x60]
mov edx, dword [0x44f9d8]
test edx, edx
je 0x4224f0
mov dword [esp + 0x10], edi
xor edi, edi
mov ecx, dword [0x44f9dc]
cmp dword [ecx + edi*8], 0x62429966
je 0x4224c0
inc edi
cmp edx, edi
jne 0x4224b0
jmp 0x4224f0
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, eax
je 0x4224f0
lea eax, [esp + 0x24]
push eax
push 0
push 0
push 0x2b
push dword [esp + 0x20]
push 5
push dword [0x44f9e0]
push ecx
call fcn.00440440
add esp, 0x20
nop
nop
nop
nop
nop
nop
nop
nop
cmp eax, 0xc0000004
jne 0x4228b3
mov eax, dword [esp + 0x24]
add eax, 2
push eax
call fcn.0043d7a0
add esp, 4
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x14]
mov edx, dword [eax]
mov dword [esp + 0x60], 0xbcbdbebf
lea eax, [esp + 0x64]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x20
xor cl, byte [esp + eax + 0x60]
add cl, 0x60
mov byte [esp + eax + 0x60], cl
inc eax
cmp eax, 7
jne 0x422540
mov eax, dword [esp + 0x60]
mov edi, dword [0x44f9d8]
test edi, edi
je 0x4225b9
mov dword [esp + 4], edx
add dword [esp + 8], 2
xor ecx, ecx
mov edx, dword [0x44f9dc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x62429966
je 0x422590
inc ecx
cmp edi, ecx
jne 0x422580
jmp 0x4225b9
mov ecx, dword [edx + ecx*8 + 4]
cmp ecx, eax
je 0x4225b9
push 0
push dword [esp + 0xc]
push dword [esp + 0x18]
push 0x2b
push dword [esp + 0x14]
push 5
push dword [0x44f9e0]
push ecx
call fcn.00440440
add esp, 0x20
test eax, eax
js 0x4228a7
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx]
shr eax, 1
mov ecx, dword [ecx + 4]
xor edx, edx
nop
cmp eax, edx
je 0x4225eb
mov edi, dword [ebp + 0xc]
movzx edi, word [edi + edx*2]
cmp di, word [ecx + edx*2]
jne 0x4228a7
inc edx
test di, di
jne 0x4225d0
mov edi, dword [ebp + 0x14]
mov ecx, edi
call fcn.0043e170
cmp eax, 2
jne 0x4228a7
mov ecx, edi
push 0
push 0x30
lea eax, [esp + 0x38]
push eax
push 0
call fcn.0043dfd0
test eax, eax
js 0x4228a7
mov ecx, edi
push 0
push 0
push 0x28
lea eax, [esp + 0x684]
push eax
push dword [esp + 0x4c]
push dword [esp + 0x4c]
call fcn.0043e470
test eax, eax
js 0x4228a7
mov ecx, edi
push 0
push 0
push 0x80
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x6ac]
push dword [esp + 0x6ac]
call fcn.0043e470
test eax, eax
js 0x4228a7
movzx eax, word [esp + 0xd2]
push eax
call fcn.0043d7a0
add esp, 4
movzx edx, word [esp + 0xd2]
mov ecx, edi
push 0
push 0
push edx
mov dword [esp + 0x18], eax
push eax
push dword [esp + 0xec]
push dword [esp + 0xec]
call fcn.0043e470
test eax, eax
js 0x42289a
movzx edi, word [esp + 0x4a0]
mov eax, dword [esp + 0xc]
mov dword [esp + 4], eax
test di, di
je 0x42270f
lea edx, [esp + 0x4a0]
mov eax, dword [esp + 0xc]
mov ecx, eax
mov dword [esp + 4], eax
jmp 0x4226d8
movzx edi, word [edx]
test di, di
je 0x42270f
movzx eax, word [ecx]
test ax, ax
je 0x42289a
add ecx, 2
add edx, 2
mov dword [esp + 8], edx
mov edx, dword [esp + 4]
add edx, 2
cmp ax, di
je 0x422700
mov dword [esp + 4], edx
mov ecx, edx
mov edx, dword [esp + 8]
je 0x4226d0
lea edx, [esp + 0x4a0]
jmp 0x4226d0
cmp dword [esp + 4], 0
je 0x42289a
mov ecx, dword [ebp + 0x14]
push 0
push 0
push 0x20
lea eax, [esp + 0x62c]
push eax
push dword [esp + 0x6a4]
push dword [esp + 0x6a4]
call fcn.0043e470
test eax, eax
js 0x42289a
mov eax, dword [esp + 0x690]
mov ecx, dword [esp + 0x694]
add eax, 0x10
mov dword [esp + 4], 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 0x4227c6
movzx eax, cx
movzx ecx, dx
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
cmp ecx, edx
je 0x42286d
push dword [esp + 8]
call fcn.0043d890
add esp, 4
mov eax, dword [esp + 0x500]
mov edx, dword [esp + 0x504]
mov ecx, edx
xor ecx, dword [esp + 0x2c]
mov edi, eax
xor edi, dword [esp + 4]
or edi, ecx
je 0x42289a
mov ecx, dword [ebp + 0x14]
push 0
push 0
push 0x68
lea edi, [esp + 0x50c]
push edi
push edx
push eax
call fcn.0043e470
test eax, eax
js 0x42289a
movzx eax, word [esp + 0x55a]
push eax
call fcn.0043d7a0
add esp, 4
movzx edx, word [esp + 0x55a]
mov ecx, dword [ebp + 0x14]
push 0
push 0
push edx
mov dword [esp + 0x14], eax
push eax
push dword [esp + 0x574]
push dword [esp + 0x574]
call fcn.0043e470
test eax, eax
js 0x422798
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp + 0x10]
movzx ecx, word [ecx + eax]
lea edx, [ecx - 0x41]
cmp dx, 0x1a
jae 0x422843
or ecx, 0x20
mov edx, dword [esp + 8]
movzx edx, word [edx + eax]
lea edi, [edx - 0x41]
cmp di, 0x1a
jae 0x422857
or edx, 0x20
test cx, cx
je 0x422780
add eax, 2
cmp cx, dx
je 0x422830
jmp 0x422780
mov eax, dword [esp + 0x530]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x534]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x540]
mov dword [esp + 0x14], eax
push dword [esp + 8]
call fcn.0043d890
add esp, 4
mov eax, dword [esp + 0xc]
push eax
call fcn.0043d890
add esp, 4
push dword [esp + 0x10]
call fcn.0043d890
add esp, 4
mov eax, dword [esp + 0x1c]
or eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x14]
je 0x422400
cmp dword [esp + 0x14], 0
je 0x422400
jmp 0x4228e9
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
push dword [esp + 0x20]
call fcn.0043d890
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
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, dword [ebp + 0x14]
call fcn.0043dc90
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret