Function at 0x422530
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], 0x93c791c5
mov dword [esp + 0x5c], 0x9f029d01
mov dword [esp + 0x60], 0x9b0e9931
mov dword [esp + 0x64], 0x871a852d
mov dword [esp + 0x68], 0x83d78119
mov dword [esp + 0x6c], 0x8f138d1f
mov dword [esp + 0x70], 0x8bdf892a
mov dword [esp + 0x74], 0xf76ff568
mov dword [esp + 0x78], 0xf35ff160
mov dword [esp + 0x7c], 0xff68fdb9
mov dword [esp + 0x80], 0xfb66f955
mov dword [esp + 0x84], 0xe771e57b
mov dword [esp + 0x88], 0xe349e172
mov dword [esp + 0x8c], 0xef7bedba
mov dword [esp + 0x90], 0xeb40e97f
mov dword [esp + 0x94], 0xd743d543
mov dword [esp + 0x98], 0xd364d186
mov dword [esp + 0x9c], 0xdf42dd71
mov dword [esp + 0xa0], 0xdb4dd947
mov dword [esp + 0xa4], 0xc76dc556
mov dword [esp + 0xa8], 0xc36fc173
mov dword [esp + 0xac], 0xcf50cd5e
mov dword [esp + 0xb0], 0xcb69c961
mov dword [esp + 0xb4], 0x37363599
mov byte [esp + 0xba], 0
mov word [esp + 0xb8], 0
lea eax, [esp + 0xb8]
mov dword [esp + 4], eax
xor ecx, ecx
xor esi, esi
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + esi + 0x58]
mov ebx, ecx
and ebx, 0x48
mov edx, esi
xor edx, 0xab1a9524
add edx, ebx
xor edx, edi
mov edi, edx
and edi, 0x49
mov eax, edx
and eax, 2
mov ebx, eax
xor ebx, 2
imul ebx, edi
or edi, 2
imul edi, eax
xor edx, 0x4b
add edx, ebx
add edx, edi
inc dl
mov byte [esp + esi + 0x58], dl
inc esi
add ecx, 2
cmp esi, 0x63
jne 0x422650
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
mov eax, dword [esp + 4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x58], 0xd8dbdac5
mov word [esp + 0x5c], 0
mov byte [esp + 0x5e], 0
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
add al, 0x4f
xor al, byte [esp + edx + 0x58]
add al, 0x75
mov byte [esp + edx + 0x58], al
inc edx
cmp edx, 7
jne 0x4226e0
mov eax, dword [esp + 0x58]
mov ecx, dword [0x450710]
test ecx, ecx
je 0x422720
xor edx, edx
mov esi, dword [0x450714]
mov ebx, dword [ebp + 0x14]
nop
nop
nop
cmp dword [esi + edx*8], 0x9abdb589
je 0x422725
inc edx
cmp ecx, edx
jne 0x422710
jmp 0x422749
mov ebx, dword [ebp + 0x14]
jmp 0x422749
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x422749
lea eax, [esp + 0x20]
push eax
push 0
push 0
push 5
push 4
push dword [0x450718]
push ecx
call fcn.00441310
add esp, 0x1c
mov dword [esp + 0x58], 0xe3222124
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x58]
lea esi, [ecx + 8]
and esi, edx
or edx, ecx
or edx, 0xc6fd4208
xor edx, esi
lea esi, [edx + edx]
and esi, 0x81a01ae
sub edx, esi
add edx, 0x1d0db5d7
mov edi, edx
and edi, esi
xor edx, esi
lea esi, [edx + edi*2]
mov edx, esi
xor edx, 0xfe
or esi, 1
and edx, esi
add edx, esi
mov byte [esp + ecx + 0x58], dl
inc ecx
cmp ecx, 4
jne 0x422760
cmp eax, dword [esp + 0x58]
jne 0x422820
push dword [esp + 0x20]
call fcn.0043e320
add esp, 4
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x58], 0xd8dbdac5
mov word [esp + 0x5c], 0
mov byte [esp + 0x5e], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
add dl, 0x4f
xor dl, byte [esp + eax + 0x58]
add dl, 0x75
mov byte [esp + eax + 0x58], dl
inc eax
cmp eax, 7
jne 0x4227e0
mov eax, dword [esp + 0x58]
mov edx, dword [0x450710]
test edx, edx
je 0x42284d
xor esi, esi
mov edi, dword [0x450714]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x9abdb589
je 0x42282b
inc esi
cmp edx, esi
jne 0x422810
jmp 0x42284d
xor ecx, ecx
xor edx, edx
xor esi, esi
jmp 0x422d8f
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x42284d
push 0
push ecx
push dword [esp + 0x1c]
push 5
push 4
push dword [0x450718]
push edx
call fcn.00441310
add esp, 0x1c
test eax, eax
js 0x422d5f
mov esi, dword [esp + 0x14]
mov eax, dword [esi]
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 0x10], 0
jmp 0x422891
mov ecx, ebx
call fcn.0043e800
mov eax, dword [esi]
test eax, eax
je 0x422d77
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 0x4228b8
add eax, 2
cmp dx, di
je 0x4228a0
cmp dx, di
jne 0x422887
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.0043e6a0
test eax, eax
js 0x422887
mov dword [esp + 0x1c], 0
mov ecx, dword [ebx]
mov dword [esp + 0x58], 0xd8dbdac5
lea eax, [esp + 0x5c]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
mov edx, eax
add dl, 0x4f
xor dl, byte [esp + eax + 0x58]
add dl, 0x75
mov byte [esp + eax + 0x58], dl
inc eax
cmp eax, 7
jne 0x422900
mov eax, dword [esp + 0x58]
mov edx, dword [0x450710]
test edx, edx
je 0x422970
xor edi, edi
mov ebx, dword [0x450714]
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xae6e2b0b
je 0x422940
inc edi
cmp edx, edi
jne 0x422930
jmp 0x422970
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je 0x422970
lea eax, [esp + 0x1c]
push eax
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x450718]
push edx
call fcn.00441310
add esp, 0x20
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0x81464748
mov dword [esp + 0x5c], 0
mov ecx, 0xbac50c71
mov edi, 0x8e
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x453af3e7]
mov edx, edi
xor edx, ecx
and edx, ebx
xor edx, ecx
not edx
and edx, ecx
add dl, dl
sub bl, dl
movzx edx, bl
add edx, ecx
add dl, 0xcb
mov byte [esp + ecx + 0x453af3e7], dl
inc ecx
dec edi
cmp ecx, 0xbac50c79
jne 0x422990
cmp eax, dword [esp + 0x58]
jne 0x422a43
mov eax, dword [esp + 0x1c]
add eax, 2
push eax
call fcn.0043e320
add esp, 4
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx]
mov dword [esp], eax
mov dword [esp + 0x58], 0xd8dbdac5
lea eax, [esp + 0x5c]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
mov ecx, eax
add cl, 0x4f
xor cl, byte [esp + eax + 0x58]
add cl, 0x75
mov byte [esp + eax + 0x58], cl
inc eax
cmp eax, 7
jne 0x422a00
mov eax, dword [esp + 0x58]
mov edi, dword [0x450710]
test edi, edi
je 0x422a74
add edx, 2
xor ebx, ebx
mov ecx, dword [0x450714]
nop
cmp dword [ecx + ebx*8], 0xae6e2b0b
je 0x422a4b
inc ebx
cmp edi, ebx
jne 0x422a30
mov ebx, dword [ebp + 0x14]
jmp 0x422a74
mov ebx, dword [ebp + 0x14]
jmp 0x422d18
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, eax
mov ebx, dword [ebp + 0x14]
je 0x422a74
push 0
push edx
push dword [esp + 0x20]
push 0x2b
push dword [esp + 0x10]
push 5
push dword [0x450718]
push ecx
call fcn.00441310
add esp, 0x20
test eax, eax
js 0x422d0c
mov ecx, dword [esp + 0x18]
movzx eax, word [ecx]
shr eax, 1
mov ecx, dword [ecx + 4]
xor edx, edx
nop
nop
nop
nop
nop
nop
cmp eax, edx
je 0x422aab
mov edi, dword [ebp + 0xc]
movzx edi, word [edi + edx*2]
cmp di, word [ecx + edx*2]
jne 0x422d0c
inc edx
test di, di
jne 0x422a90
mov ecx, ebx
call fcn.0043ed60
cmp eax, 2
jne 0x422d0c
mov ecx, ebx
push 0
push 0x30
lea eax, [esp + 0x30]
push eax
push 0
call fcn.0043ebb0
test eax, eax
js 0x422d0c
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.0043f070
test eax, eax
js 0x422d0c
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.0043f070
test eax, eax
js 0x422d0c
movzx eax, word [esp + 0xca]
push eax
call fcn.0043e320
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.0043f070
test eax, eax
js 0x422d03
mov eax, edi
movzx edi, word [esp + 0x498]
mov dword [esp + 8], eax
mov dword [esp], eax
test di, di
je 0x422bc5
lea ecx, [esp + 0x498]
mov edx, dword [esp + 8]
mov eax, edx
mov dword [esp], edx
jmp 0x422b98
movzx edi, word [ecx]
test di, di
je 0x422bc5
movzx ebx, word [eax]
test bx, bx
je 0x422cfc
add eax, 2
add ecx, 2
mov edx, dword [esp]
add edx, 2
cmp bx, di
je 0x422bba
mov dword [esp], edx
mov eax, edx
je 0x422b90
lea ecx, [esp + 0x498]
jmp 0x422b90
cmp dword [esp], 0
je 0x422cfc
mov ebx, dword [ebp + 0x14]
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.0043f070
test eax, eax
js 0x422cff
mov eax, dword [esp + 0x688]
mov ecx, dword [esp + 0x68c]
add eax, 0x10
mov dword [esp], eax
adc ecx, 0
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x628]
mov edx, dword [esp + 0x62c]
mov dword [esp + 0x4fc], edx
mov dword [esp + 0x4f8], eax
jmp 0x422c69
cmp cx, dx
je 0x422d33
push edi
call fcn.0043e380
add esp, 4
mov eax, dword [esp + 0x4f8]
mov edx, dword [esp + 0x4fc]
mov ecx, edx
xor ecx, dword [esp + 0x24]
mov edi, eax
xor edi, dword [esp]
or edi, ecx
je 0x422cff
mov ecx, ebx
push 0
push 0
push 0x68
lea edi, [esp + 0x504]
push edi
push edx
push eax
call fcn.0043f070
test eax, eax
js 0x422cff
movzx eax, word [esp + 0x552]
push eax
call fcn.0043e320
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.0043f070
test eax, eax
js 0x422c3f
xor eax, eax
mov ecx, dword [ebp + 0x10]
movzx ecx, word [ecx + eax]
lea edx, [ecx - 0x41]
cmp dx, 0x1a
jae 0x422cd3
or ecx, 0x20
movzx edx, word [edi + eax]
lea ebx, [edx - 0x41]
cmp bx, 0x1a
jae 0x422ce3
or edx, 0x20
mov ebx, dword [ebp + 0x14]
test cx, cx
je 0x422c36
add eax, 2
cmp cx, dx
je 0x422cc0
jmp 0x422c36
mov ebx, dword [ebp + 0x14]
mov edi, dword [esp + 8]
push edi
call fcn.0043e380
add esp, 4
push dword [esp + 0x18]
call fcn.0043e380
add esp, 4
mov eax, dword [esp + 4]
or eax, dword [esp + 0x10]
je 0x422880
cmp dword [esp + 0xc], 0
je 0x422880
jmp 0x422d77
mov eax, dword [esp + 0x528]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x52c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x538]
mov dword [esp + 0xc], eax
push edi
call fcn.0043e380
add esp, 4
jmp 0x422cff
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 0x10], 0
push dword [esp + 0x14]
call fcn.0043e380
add esp, 4
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 4]
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.0043e7f0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret