Function at 0x422090
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], 0x41114713
mov dword [esp + 0x5c], 0x4dde43df
mov dword [esp + 0x60], 0x49da4fe7
mov dword [esp + 0x64], 0xb5d64be3
mov dword [esp + 0x68], 0xb1e1b72f
mov dword [esp + 0x6c], 0xbd2db32d
mov dword [esp + 0x70], 0xb9e9bf1e
mov dword [esp + 0x74], 0xa521bb24
mov dword [esp + 0x78], 0xa109a734
mov dword [esp + 0x7c], 0xad34a3e7
mov dword [esp + 0x80], 0xa932af03
mov dword [esp + 0x84], 0x953bab31
mov dword [esp + 0x88], 0x91039706
mov dword [esp + 0x8c], 0x9d0593c6
mov dword [esp + 0x90], 0x99349f0d
mov dword [esp + 0x94], 0x850d9b09
mov dword [esp + 0x98], 0x813087d2
mov dword [esp + 0x9c], 0x8d1e832f
mov dword [esp + 0xa0], 0x891f8f15
mov dword [esp + 0xa4], 0xf51f8b1a
mov dword [esp + 0xa8], 0xf159f749
mov dword [esp + 0xac], 0xfd6cf362
mov dword [esp + 0xb0], 0xf953ff57
mov dword [esp + 0xb4], 0xe5fafb57
mov word [esp + 0xb8], 0
lea edx, [esp + 0xb8]
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0xf1
xor cl, byte [esp + eax + 0x58]
add cl, 0x4b
mov byte [esp + eax + 0x58], cl
inc eax
cmp eax, 0x62
jne 0x4221a0
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 eax, eax
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x58], 0x700f0e0d
mov word [esp + 0x5c], 0
mov byte [esp + 0x5e], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov esi, eax
and esi, 0xa
mov edx, ecx
xor edx, 0xbd
add edx, esi
xor dl, byte [esp + ecx + 0x58]
add dl, 0x4f
mov byte [esp + ecx + 0x58], dl
inc ecx
add eax, 2
cmp ecx, 7
jne 0x422200
mov eax, dword [esp + 0x58]
mov ecx, dword [0x452b74]
test ecx, ecx
je 0x422274
xor edx, edx
mov esi, dword [0x452b78]
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9abdb589
je 0x422250
inc edx
cmp ecx, edx
jne 0x422240
jmp 0x422274
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x422274
lea eax, [esp + 0x20]
push eax
push 0
push 0
push 5
push 4
push ecx
push dword [0x452b7c]
call fcn.00442710
add esp, 0x1c
mov dword [esp + 8], eax
mov dword [esp + 0x58], 0xfcec9cc
mov byte [esp + 0x5c], 0
xor eax, eax
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + edx + 0x58]
mov ebx, eax
and ebx, 4
mov esi, edx
xor esi, 0xedb29e52
add esi, ebx
xor esi, edi
mov edi, esi
not edi
or edi, 0x5b82e865
add edi, esi
inc edi
mov ecx, edi
and ecx, 2
mov ebx, edi
or edi, 2
imul edi, ecx
xor ecx, 2
and ebx, 0xfffffffd
imul ebx, ecx
lea ecx, [esi + esi]
and ecx, 0x930510ca
sub esi, ecx
add esi, edi
add ebx, esi
add ebx, 0x5b82e865
mov ecx, ebx
xor ecx, 0xfffffffe
mov esi, ebx
or esi, 1
and esi, ecx
mov edi, esi
and edi, 0xfd
mov ecx, esi
and ecx, 2
or esi, 2
imul esi, ecx
xor ecx, 2
imul ecx, edi
xor ebx, 1
add ebx, esi
add ebx, ecx
mov byte [esp + edx + 0x58], bl
inc edx
add eax, 2
cmp edx, 5
jne 0x422290
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x58]
jne 0x4223b0
push dword [esp + 0x20]
call fcn.0043f6a0
add esp, 4
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x58], 0x700f0e0d
mov word [esp + 0x5c], 0
mov byte [esp + 0x5e], 0
xor eax, eax
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
and esi, 0xa
mov ebx, edx
xor ebx, 0xbd
add ebx, esi
xor bl, byte [esp + edx + 0x58]
add bl, 0x4f
mov byte [esp + edx + 0x58], bl
inc edx
add eax, 2
cmp edx, 7
jne 0x422360
mov eax, dword [esp + 0x58]
mov edx, dword [0x452b74]
test edx, edx
je 0x4223e0
xor esi, esi
mov edi, dword [0x452b78]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x9abdb589
je 0x4223be
inc esi
cmp edx, esi
jne 0x4223a0
jmp 0x4223e0
xor ecx, ecx
xor edx, edx
xor esi, esi
mov edi, dword [ebp + 0x14]
jmp 0x4229a2
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x4223e0
push 0
push ecx
push dword [esp + 0x1c]
push 5
push 4
push edx
push dword [0x452b7c]
call fcn.00442710
add esp, 0x1c
test eax, eax
mov edi, dword [ebp + 0x14]
js 0x422972
mov esi, dword [esp + 0x14]
mov eax, dword [esi]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
mov ebx, dword [ebp + 8]
jmp 0x42241d
mov edi, dword [ebp + 0x14]
mov eax, dword [esi]
test eax, eax
je 0x42298a
mov ecx, dword [esi + eax + 0x3c]
add esi, eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [ecx + eax]
movzx edi, word [ebx + eax]
test dx, dx
je 0x422445
add eax, 2
cmp dx, di
je 0x422430
cmp dx, di
jne 0x422410
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.0043fa20
test eax, eax
js 0x422413
mov dword [esp + 0x1c], 0
mov ecx, dword [edi]
mov dword [esp + 0x58], 0x700f0e0d
lea eax, [esp + 0x5c]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
xor edx, edx
nop
mov edi, eax
and edi, 0xa
mov ebx, edx
xor ebx, 0xbd
add ebx, edi
xor bl, byte [esp + edx + 0x58]
add bl, 0x4f
mov byte [esp + edx + 0x58], bl
inc edx
add eax, 2
cmp edx, 7
jne 0x422490
mov eax, dword [esp + 0x58]
mov edx, dword [0x452b74]
test edx, edx
je 0x422510
xor edi, edi
mov ebx, dword [0x452b78]
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xae6e2b0b
je 0x4224e0
inc edi
cmp edx, edi
jne 0x4224d0
jmp 0x422510
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je 0x422510
lea eax, [esp + 0x1c]
push eax
push 0
push 0
push 0x2b
push ecx
push 5
push edx
push dword [0x452b7c]
call fcn.00442710
add esp, 0x20
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0xf4e494c
mov dword [esp + 0x5c], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x58]
mov edi, ecx
and edi, 6
xor edi, 0x82caba6e
mov ebx, ecx
and ebx, 1
sub ebx, edi
xor ebx, edx
mov edx, ebx
and edx, 0x25
xor ebx, 0x25
lea edx, [ebx + edx*2]
inc dl
mov byte [esp + ecx + 0x58], dl
inc ecx
cmp ecx, 8
jne 0x422530
cmp eax, dword [esp + 0x58]
jne 0x42260a
mov eax, dword [esp + 0x1c]
add eax, 2
push eax
call fcn.0043f6a0
add esp, 4
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
mov dword [esp + 0x58], 0x700f0e0d
lea eax, [esp + 0x5c]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
and ebx, 0xa
mov ecx, edi
xor ecx, 0xbd
add ecx, ebx
xor cl, byte [esp + edi + 0x58]
add cl, 0x4f
mov byte [esp + edi + 0x58], cl
inc edi
add eax, 2
cmp edi, 7
jne 0x4225b0
mov eax, dword [esp + 0x58]
mov edi, dword [0x452b74]
test edi, edi
je 0x42263e
add dword [esp + 4], 2
xor ebx, ebx
mov ecx, dword [0x452b78]
nop
nop
cmp dword [ecx + ebx*8], 0xae6e2b0b
je 0x422615
mov edx, ebx
and edx, 1
xor ebx, 1
lea ebx, [ebx + edx*2]
cmp ebx, edi
jb 0x4225f0
jmp 0x42263e
mov edi, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
jmp 0x4227b9
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, eax
je 0x42263e
push 0
push dword [esp + 8]
push dword [esp + 0x20]
push 0x2b
push dword [esp + 0x10]
push 5
push ecx
push dword [0x452b7c]
call fcn.00442710
add esp, 0x20
test eax, eax
mov edi, dword [ebp + 0x14]
js 0x422765
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
nop
nop
nop
cmp eax, edx
je 0x42267b
movzx edi, word [ecx + edx*2]
mov ebx, dword [ebp + 0xc]
cmp word [ebx + edx*2], di
jne 0x4227a7
inc edx
test di, di
jne 0x422660
mov edi, dword [ebp + 0x14]
mov ecx, edi
call fcn.004400b0
cmp eax, 2
mov ebx, dword [ebp + 8]
jne 0x4227ad
mov ecx, edi
push 0
push 0x30
lea eax, [esp + 0x30]
push eax
push 0
call fcn.0043feb0
test eax, eax
js 0x4227ad
mov ecx, edi
push 0
push 0
push 0x28
lea eax, [esp + 0x67c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x44]
call fcn.00440440
test eax, eax
js 0x4227ad
mov ecx, edi
push 0
push 0
push 0x80
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x6a4]
push dword [esp + 0x6a4]
call fcn.00440440
test eax, eax
js 0x4227ad
movzx eax, word [esp + 0xca]
push eax
call fcn.0043f6a0
add esp, 4
movzx edx, word [esp + 0xca]
mov ecx, edi
push 0
push 0
push edx
mov dword [esp + 0xc], eax
push eax
push dword [esp + 0xe4]
push dword [esp + 0xe4]
call fcn.00440440
test eax, eax
js 0x422932
movzx edi, word [esp + 0x498]
mov eax, dword [esp]
mov dword [esp + 4], eax
test di, di
je 0x4227da
lea ecx, [esp + 0x498]
mov edx, dword [esp]
mov eax, edx
mov dword [esp + 4], edx
jmp 0x422778
mov ebx, dword [ebp + 8]
jmp 0x4227ad
movzx edi, word [ecx]
test di, di
je 0x4227da
movzx ebx, word [eax]
test bx, bx
je 0x42292c
add eax, 2
add ecx, 2
mov edx, dword [esp + 4]
add edx, 2
cmp bx, di
je 0x42279c
mov dword [esp + 4], edx
mov eax, edx
je 0x422770
lea ecx, [esp + 0x498]
jmp 0x422770
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0x14]
push dword [esp + 0x18]
call fcn.0043f710
add esp, 4
mov eax, dword [esp + 8]
or eax, dword [esp + 0x10]
je 0x4227ce
cmp dword [esp + 0xc], 0
jne 0x42298a
mov ecx, edi
call fcn.0043fbc0
jmp 0x422413
cmp dword [esp + 4], 0
je 0x42292c
mov edi, dword [ebp + 0x14]
mov ecx, edi
push 0
push 0
push 0x20
lea eax, [esp + 0x624]
push eax
push dword [esp + 0x69c]
push dword [esp + 0x69c]
call fcn.00440440
test eax, eax
js 0x42292f
mov eax, dword [esp + 0x688]
mov ecx, dword [esp + 0x68c]
add eax, 0x10
mov dword [esp + 4], 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
mov ebx, dword [ebp + 8]
jmp 0x422887
cmp cx, dx
je 0x422943
push edi
call fcn.0043f710
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 + 4]
or edi, ecx
mov edi, dword [ebp + 0x14]
je 0x422932
mov ecx, edi
push 0
push 0
push 0x68
lea edi, [esp + 0x504]
push edi
push edx
push eax
call fcn.00440440
test eax, eax
js 0x42296d
movzx eax, word [esp + 0x552]
push eax
call fcn.0043f6a0
add esp, 4
mov edi, eax
movzx eax, word [esp + 0x552]
mov ecx, dword [ebp + 0x14]
push 0
push 0
push eax
push edi
push dword [esp + 0x56c]
push dword [esp + 0x56c]
call fcn.00440440
test eax, eax
js 0x422859
xor eax, eax
nop
nop
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 0x422903
or ecx, 0x20
movzx edx, word [edi + eax]
lea ebx, [edx - 0x41]
cmp bx, 0x1a
jae 0x422913
or edx, 0x20
test cx, cx
mov ebx, dword [ebp + 8]
je 0x422850
add eax, 2
cmp cx, dx
je 0x4228f0
jmp 0x422850
mov edi, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
mov eax, dword [esp]
push eax
call fcn.0043f710
add esp, 4
jmp 0x4227ad
mov eax, dword [esp + 0x528]
mov dword [esp + 8], 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.0043f710
add esp, 4
mov edi, dword [ebp + 0x14]
jmp 0x422932
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
push dword [esp + 0x14]
call fcn.0043f710
add esp, 4
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
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, edi
call fcn.0043fbb0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret