Function at 0x421ec0
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, 0xa00
mov dword [esp + 0x58], 0xe3dfe1dd
mov dword [esp + 0x5c], 0xe712e511
mov dword [esp + 0x60], 0xfb06f901
mov dword [esp + 0x64], 0xff0afd05
mov dword [esp + 0x68], 0xf3cff179
mov dword [esp + 0x6c], 0xf703f507
mov dword [esp + 0x70], 0x8bb7896a
mov dword [esp + 0x74], 0x8f078d78
mov dword [esp + 0x78], 0x83678170
mov dword [esp + 0x7c], 0x87788549
mov dword [esp + 0x80], 0x9b6e997d
mov dword [esp + 0x84], 0x9f619d6b
mov dword [esp + 0x88], 0x93699162
mov dword [esp + 0x8c], 0x976b95aa
mov dword [esp + 0x90], 0xab50a957
mov dword [esp + 0x94], 0xaf53ad53
mov dword [esp + 0x98], 0xa37ca19e
mov dword [esp + 0x9c], 0xa752a541
mov dword [esp + 0xa0], 0xbb45b94f
mov dword [esp + 0xa4], 0xbf45bd4e
mov dword [esp + 0xa8], 0xb357b163
mov dword [esp + 0xac], 0xb740b546
mov dword [esp + 0xb0], 0x4ba949b1
mov dword [esp + 0xb4], 0x4f4e4da9
mov dword [esp + 0xb8], 0
lea ebx, [esp + 0xb8]
mov ecx, 0xc21032a9
mov edx, 0x3defcd57
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 0x3defcdaf]
mov edi, edx
and edi, 0x15d
mov esi, edx
or esi, 0x53940a2
add esi, ecx
or esi, edi
and esi, 0xc73973ff
xor esi, eax
mov eax, esi
xor eax, 0xc200335d
xor esi, 0xc200333b
and eax, 0x19
add eax, eax
sub eax, esi
add al, 0x1e
mov byte [esp + ecx + 0x3defcdaf], al
inc ecx
dec edx
cmp ecx, 0xc210330d
jne 0x421fe0
lea edi, [esp + 0x498]
lea eax, [esp + 0x58]
mov ecx, 0x18
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x4f8]
xor edx, edx
xor ecx, ecx
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x24], 0
mov dword [esp + 0x58], 0xc0c7c6c5
mov word [esp + 0x5c], 0
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
add al, 0xb1
xor al, byte [esp + edx + 0x58]
add al, 0x8b
mov byte [esp + edx + 0x58], al
inc edx
cmp edx, 6
jne 0x422070
mov eax, dword [esp + 0x58]
mov ecx, dword [0x450c18]
test ecx, ecx
je 0x4220d4
xor edx, edx
mov esi, dword [0x450c1c]
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9abdb589
je 0x4220b0
inc edx
cmp ecx, edx
jne 0x4220a0
jmp 0x4220d4
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x4220d4
lea eax, [esp + 0x24]
push eax
push 0
push 0
push 5
push 4
push dword [0x450c20]
push ecx
call fcn.00440770
add esp, 0x1c
mov dword [esp + 0x58], 0x733231cc
mov ecx, 0x5b57494c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x5b5748f4]
mov edi, ecx
and edi, 0x4901480b
or edi, 0x8008a220
xor edi, edx
mov esi, edi
xor esi, 0x125ea364
add edi, edi
xor edi, 0x24bd46c9
sub esi, edi
and esi, ecx
mov ebx, esi
and ebx, 0x5b57494d
mov edi, esi
or edi, 0xfffffffd
inc edi
imul edi, ebx
mov ebx, esi
and ebx, 2
or esi, 2
imul esi, ebx
add edi, edx
sub edi, esi
add edi, ecx
mov edx, edi
and edx, 3
add edx, edx
xor edi, 0x7c
sub edx, edi
mov byte [esp + ecx - 0x5b5748f4], dl
inc ecx
cmp ecx, 0x5b574950
jne 0x4220f0
cmp eax, dword [esp + 0x58]
jne 0x4221d0
push dword [esp + 0x24]
call fcn.0043d980
add esp, 4
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x58], 0xc0c7c6c5
mov word [esp + 0x5c], 0
xor eax, eax
mov ebx, dword [ebp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
add dl, 0xb1
xor dl, byte [esp + eax + 0x58]
add dl, 0x8b
mov byte [esp + eax + 0x58], dl
inc eax
cmp eax, 6
jne 0x422190
mov eax, dword [esp + 0x58]
mov edx, dword [0x450c18]
test edx, edx
je 0x422200
xor esi, esi
mov edi, dword [0x450c1c]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x9abdb589
je 0x4221de
inc esi
cmp edx, esi
jne 0x4221c0
jmp 0x422200
xor ecx, ecx
xor edx, edx
xor esi, esi
mov ebx, dword [ebp + 0x14]
jmp 0x42271a
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x422200
push 0
push ecx
push dword [esp + 0x24]
push 5
push 4
push dword [0x450c20]
push edx
call fcn.00440770
add esp, 0x1c
test eax, eax
js 0x4226ea
mov esi, dword [esp + 0x1c]
mov eax, dword [esi]
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
jmp 0x422241
mov ecx, ebx
call fcn.0043ded0
mov eax, dword [esi]
test eax, eax
je 0x422702
mov ecx, dword [esi + eax + 0x3c]
add esi, eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [ecx + eax]
mov edi, dword [ebp + 8]
movzx edi, word [edi + eax]
test dx, dx
je 0x422268
add eax, 2
cmp dx, di
je 0x422250
cmp dx, di
jne 0x422237
mov eax, dword [esi + 0x44]
mov dword [ebx + 8], eax
mov eax, dword [esi + 0xdc]
mov dword [ebx + 0xc], eax
mov ecx, ebx
push 0x410
call fcn.0043dd90
test eax, eax
js 0x422237
mov dword [esp + 0x20], 0
mov edi, dword [ebx]
mov dword [esp + 0x58], 0xc0c7c6c5
mov word [esp + 0x5c], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xb1
xor cl, byte [esp + eax + 0x58]
add cl, 0x8b
mov byte [esp + eax + 0x58], cl
inc eax
cmp eax, 6
jne 0x4222b0
mov eax, dword [esp + 0x58]
mov edx, dword [0x450c18]
test edx, edx
je 0x422320
mov dword [esp + 0xc], edi
xor edi, edi
mov ecx, dword [0x450c1c]
cmp dword [ecx + edi*8], 0xae6e2b0b
je 0x4222f0
inc edi
cmp edx, edi
jne 0x4222e0
jmp 0x422320
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, eax
je 0x422320
lea eax, [esp + 0x20]
push eax
push 0
push 0
push 0x2b
push dword [esp + 0x1c]
push 5
push dword [0x450c20]
push ecx
call fcn.00440770
add esp, 0x20
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0x89cacb30
mov byte [esp + 0x5c], 0
xor ecx, ecx
nop
mov edx, ecx
add dl, 0xb3
xor dl, byte [esp + ecx + 0x58]
add dl, 0x81
mov byte [esp + ecx + 0x58], dl
inc ecx
cmp ecx, 5
jne 0x422330
cmp eax, dword [esp + 0x58]
jne 0x4226cf
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.0043d980
add esp, 4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov edx, dword [ebx]
mov dword [esp + 0x58], 0xc0c7c6c5
mov word [esp + 0x5c], 0
xor eax, eax
nop
mov ecx, eax
add cl, 0xb1
xor cl, byte [esp + eax + 0x58]
add cl, 0x8b
mov byte [esp + eax + 0x58], cl
inc eax
cmp eax, 6
jne 0x422380
mov eax, dword [esp + 0x58]
mov edi, dword [0x450c18]
test edi, edi
je 0x4223f9
mov dword [esp], edx
add dword [esp + 4], 2
xor ecx, ecx
mov edx, dword [0x450c1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0xae6e2b0b
je 0x4223d0
inc ecx
cmp edi, ecx
jne 0x4223c0
jmp 0x4223f9
mov ecx, dword [edx + ecx*8 + 4]
cmp ecx, eax
je 0x4223f9
push 0
push dword [esp + 8]
push dword [esp + 0x14]
push 0x2b
push dword [esp + 0x10]
push 5
push dword [0x450c20]
push ecx
call fcn.00440770
add esp, 0x20
test eax, eax
js 0x4226c3
mov ecx, dword [esp + 0xc]
movzx eax, word [ecx]
shr eax, 1
mov ecx, dword [ecx + 4]
xor edx, edx
nop
cmp eax, edx
je 0x42242b
mov edi, dword [ebp + 0xc]
movzx edi, word [edi + edx*2]
cmp di, word [ecx + edx*2]
jne 0x4226c3
inc edx
test di, di
jne 0x422410
mov ecx, ebx
call fcn.0043e330
cmp eax, 2
jne 0x4226c3
mov ecx, ebx
push 0
push 0x30
lea eax, [esp + 0x30]
push eax
push 0
call fcn.0043e1c0
test eax, eax
js 0x4226c3
mov ecx, ebx
push 0
push 0
push 0x28
lea eax, [esp + 0x67c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x44]
call fcn.0043e650
test eax, eax
js 0x4226c3
mov ecx, ebx
push 0
push 0
push 0x80
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x6a4]
push dword [esp + 0x6a4]
call fcn.0043e650
test eax, eax
js 0x4226c3
movzx eax, word [esp + 0xca]
push eax
call fcn.0043d980
add esp, 4
mov edi, eax
movzx eax, word [esp + 0xca]
mov ecx, ebx
push 0
push 0
push eax
push edi
push dword [esp + 0xe4]
push dword [esp + 0xe4]
call fcn.0043e650
test eax, eax
js 0x4226ba
mov eax, edi
movzx edi, word [esp + 0x498]
mov dword [esp + 8], eax
mov dword [esp], eax
test di, di
je 0x42254d
lea edx, [esp + 0x498]
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [esp], eax
jmp 0x422518
movzx edi, word [edx]
test di, di
je 0x42254d
movzx eax, word [ecx]
test ax, ax
je 0x4226b6
add edx, 2
mov dword [esp + 4], edx
add ecx, 2
mov edx, dword [esp]
add edx, 2
cmp ax, di
je 0x42253e
mov dword [esp], edx
mov ecx, edx
mov edx, dword [esp + 4]
je 0x422510
lea edx, [esp + 0x498]
jmp 0x422510
cmp dword [esp], 0
je 0x4226b6
mov ecx, ebx
push 0
push 0
push 0x20
lea eax, [esp + 0x624]
push eax
push dword [esp + 0x69c]
push dword [esp + 0x69c]
call fcn.0043e650
test eax, eax
js 0x4226b6
mov eax, dword [esp + 0x688]
mov ecx, dword [esp + 0x68c]
add eax, 0x10
mov dword [esp + 4], eax
adc ecx, 0
mov dword [esp], ecx
mov eax, dword [esp + 0x628]
mov edx, dword [esp + 0x62c]
mov dword [esp + 0x4fc], edx
mov dword [esp + 0x4f8], eax
jmp 0x4225ee
cmp cx, dx
je 0x42268c
push edi
call fcn.0043da70
add esp, 4
mov eax, dword [esp + 0x4f8]
mov edx, dword [esp + 0x4fc]
mov ecx, edx
xor ecx, dword [esp]
mov edi, eax
xor edi, dword [esp + 4]
or edi, ecx
je 0x4226b6
mov ecx, ebx
push 0
push 0
push 0x68
lea edi, [esp + 0x504]
push edi
push edx
push eax
call fcn.0043e650
test eax, eax
js 0x4226b6
movzx eax, word [esp + 0x552]
push eax
call fcn.0043d980
add esp, 4
mov edi, eax
movzx eax, word [esp + 0x552]
mov ecx, ebx
push 0
push 0
push eax
push edi
push dword [esp + 0x56c]
push dword [esp + 0x56c]
call fcn.0043e650
test eax, eax
js 0x4225c4
xor eax, eax
nop
nop
nop
mov ecx, dword [ebp + 0x10]
movzx ecx, word [ecx + eax]
lea edx, [ecx - 0x41]
cmp dx, 0x1a
jae 0x422663
or ecx, 0x20
movzx edx, word [edi + eax]
lea ebx, [edx - 0x41]
cmp bx, 0x1a
jae 0x422673
or edx, 0x20
mov ebx, dword [ebp + 0x14]
test cx, cx
je 0x4225bb
add eax, 2
cmp cx, dx
je 0x422650
jmp 0x4225bb
mov eax, dword [esp + 0x528]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x52c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x538]
mov dword [esp + 0x10], eax
push edi
call fcn.0043da70
add esp, 4
mov edi, dword [esp + 8]
push edi
call fcn.0043da70
add esp, 4
push dword [esp + 0xc]
call fcn.0043da70
add esp, 4
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x14]
je 0x422230
cmp dword [esp + 0x10], 0
je 0x422230
jmp 0x422702
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
push dword [esp + 0x1c]
call fcn.0043da70
add esp, 4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
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.0043dec0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret