Function at 0x423dd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf4
mov dword [esp + 0xc], 0x935391ad
mov dword [esp + 0x10], 0xaf5ead5c
mov dword [esp + 0x14], 0xab4ba974
mov dword [esp + 0x18], 0xa747a528
mov dword [esp + 0x1c], 0xa3a2a19d
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x5c
xor cl, byte [esp + eax + 0xc]
add cl, 0x34
mov byte [esp + eax + 0xc], cl
inc eax
cmp eax, 0x14
jne 0x423e10
lea esi, [esp + 0xae]
lea eax, [esp + 0xc]
mov edi, esi
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xc2]
lea eax, [esp + 0x20]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x74]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x44a878]
mov ebx, dword [esp + 0x74]
test ebx, ebx
jns 0x423e71
mov eax, 0xffffffff
jmp 0x423e74
lea eax, [ebx + ebx]
push eax
call fcn.00408740
add esp, 4
push edi
push ebx
mov dword [esp + 0x50], eax
push eax
push 9
push esi
push 0
call dword [0x44a878]
mov dword [esp + 0xc], 0xc16dc708
mov dword [esp + 0x10], 0xcd6fc35d
mov dword [esp + 0x14], 0xc95ccf5d
mov dword [esp + 0x18], 0xb5cacb64
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
mov eax, 0xd7ad2d31
mov ecx, 0xce
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0x2852d2db]
mov esi, ecx
xor esi, eax
and esi, edi
xor esi, eax
mov edi, esi
and edi, 0xc18c0c08
mov ebx, esi
and ebx, 2
mov ebp, ebx
xor ebp, 2
imul ebp, edi
or edi, 2
imul edi, ebx
mov ebx, esi
xor ebx, 0xc99e1e0a
add esi, esi
and esi, 2
sub ebx, esi
add ebp, ebx
inc ebp
inc ebx
add ebp, edi
and ebx, esi
xor ebp, esi
lea ebx, [ebx*2]
add ebx, ebp
mov byte [esp + eax + 0x2852d2db], bl
inc eax
dec ecx
cmp eax, 0xd7ad2d45
jne 0x423ed0
lea ebp, [esp + 0x9e]
lea eax, [esp + 0xc]
mov edi, ebp
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xae]
xor ebx, ebx
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0xc], 0x71c57fb8
mov dword [esp + 0x10], 0x75d773c5
mov dword [esp + 0x14], 0x49c477c5
mov dword [esp + 0x18], 0x4d8f4bec
mov dword [esp + 0x1c], 0x41f04fef
mov dword [esp + 0x20], 0x45f043e3
mov dword [esp + 0x24], 0x594647cf
lea esi, [esp + 0x28]
mov dword [esp + 0x28], 0
xor eax, eax
nop
nop
nop
nop
nop
mov edx, ebx
and edx, 0x2a
mov ecx, eax
xor ecx, 0x95
add ecx, edx
xor cl, byte [esp + eax + 0xc]
add cl, 0x17
mov byte [esp + eax + 0xc], cl
inc eax
add ebx, 2
cmp eax, 0x20
jne 0x423fa0
lea edx, [esp + 0xd8]
lea eax, [esp + 0xc]
mov edi, edx
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xf4]
xor eax, eax
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0xc], 0x39ad3bf0
mov dword [esp + 0x10], 0x258b27a5
mov dword [esp + 0x14], 0x21bc23b5
mov dword [esp + 0x18], 0x2d9e2f8c
mov dword [esp + 0x1c], 0x29e42b90
lea ebx, [esp + 0x20]
mov word [esp + 0x20], 0x1728
mov dword [esp + 0x22], 0
mov word [esp + 0x26], 0
nop
nop
nop
mov ecx, eax
add cl, 0x4b
xor cl, byte [esp + eax + 0xc]
add cl, 0x89
mov byte [esp + eax + 0xc], cl
inc eax
cmp eax, 0x1c
jne case.default.0x4240a5
lea esi, [esp + 0xc2]
lea eax, [esp + 0xc]
mov ecx, 5
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xd6]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], esi
mov ebp, dword [esp + 0x48]
mov eax, ebp
add eax, 2
mov dword [esp + 0x7c], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x64], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x44523c]
jmp dword [0x445244]
push ebp
call fcn.00408750
add esp, 4
nop
nop
nop
nop
nop
jmp dword [0x445324]
mov dword [esp + 0x84], ecx
mov esi, dword [esp + ecx + 0x90]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax], 0
lea eax, [eax + 2]
jne 0x424110
add eax, esi
add eax, 0xfffffffe
mov ecx, esi
not ecx
and ecx, eax
xor eax, esi
add ecx, ecx
sub ecx, eax
mov dword [esp + 0x80], ecx
mov edx, ecx
sar edx, 1
mov eax, dword [esp + 0x74]
lea ecx, [edx + eax]
mov dword [esp + 0x68], edx
add edx, eax
add edx, 0xd
lea eax, [ecx*2 + 0x1a]
test edx, edx
jns 0x424156
mov eax, 0xffffffff
mov dword [esp + 0x6c], esi
push eax
call fcn.00408740
add esp, 4
mov edi, eax
movzx ecx, word [ebp]
test cx, cx
je 0x424191
mov edx, dword [esp + 0x7c]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424180
mov word [eax], 0x5c
mov dword [esp + 0xc], 0x9f529944
mov dword [esp + 0x10], 0xa3459d6f
mov dword [esp + 0x14], 0xa74aa141
mov dword [esp + 0x18], 0xab7da584
mov dword [esp + 0x1c], 0xaf4fa95c
mov dword [esp + 0x20], 0xb357ad58
mov word [esp + 0x24], 0xb1b0
lea ecx, [esp + 0xc]
mov byte [ecx + 0x1c], 0
mov word [ecx + 0x1a], 0
mov ecx, 0x5a
mov edx, 0x25
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, edx
and esi, 0x32
mov ebx, ecx
and ebx, 0x4d
or ebx, esi
xor bl, byte [esp + ecx - 0x4e]
xor bl, 0xb2
add bl, 0xbe
mov byte [esp + ecx - 0x4e], bl
inc ecx
dec edx
cmp ecx, 0x77
jne 0x4241f0
add eax, 2
mov edx, dword [esp + 0x6c]
movzx ecx, word [edx]
test cx, cx
je 0x424241
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424230
mov word [eax], 0
movzx ecx, word [esp + 0xc]
test cx, cx
je 0x424271
lea edx, [esp + 0xe]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424260
mov word [eax], 0
lea eax, [esp + 0x50]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.0043cd70
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44524c]
xor ebx, ebx
jmp dword [0x4452fc]
lea eax, [esp + 0x70]
push 0
push eax
push dword [esp + 0x58]
call fcn.0043d0f0
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x445264]
jmp dword [0x445270]
mov esi, dword [esp + 0x70]
push esi
call fcn.00408740
add esp, 4
push 0
push esi
push eax
push dword [esp + 0x5c]
call fcn.0043d1f0
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x70]
lea eax, [esi + 1]
push eax
call fcn.00408740
add esp, 4
mov ebp, eax
push 0
push esi
push eax
push dword [esp + 0x5c]
call fcn.0043d1f0
add esp, 0x10
jmp dword [0x445278]
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44527c]
mov eax, dword [esp + 0x70]
mov byte [ebp + eax], 0
push ebp
call fcn.00401000
add esp, 4
mov esi, eax
xor eax, eax
test esi, esi
setne al
xor ebx, ebx
jmp dword [eax*4 + 0x445284]
mov dword [esp + 0x78], edi
mov dword [esp + 0x60], esi
jmp dword [0x445290]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44529c]
xor ebx, ebx
mov eax, dword [0x4452b4]
mov edi, dword [esp + 0x78]
jmp case.0x4240a5.27
mov eax, dword [esp + 0x80]
add eax, 0x10
cmp dword [esp + 0x68], 0xfffffff8
jge 0x424701
mov eax, 0xffffffff
push eax
call fcn.00408740
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0xc], 0xe17ae7b5
mov dword [esp + 0x10], 0xddb4e370
mov dword [esp + 0x14], 0xd956df50
mov dword [esp + 0x18], 0xd5dadb54
mov word [esp + 0x1c], 0
mov esi, 0x7d9b92a7
mov eax, 0x2646d59
nop
movzx edx, byte [esp + eax - 0x2646d4d]
lea ecx, [esi - 1]
mov edi, ecx
or edi, edx
or edx, eax
not edi
add edx, esi
or edx, edi
mov esi, edx
and esi, 0x40
mov edi, edx
and edi, 2
mov ebx, edi
xor ebx, 2
imul ebx, esi
or esi, 2
imul esi, edi
xor edx, 0x42
add edx, ebx
add edx, esi
inc dl
mov byte [esp + eax - 0x2646d4d], dl
inc eax
mov esi, ecx
cmp eax, 0x2646d6b
jne 0x424740
mov edx, dword [esp + 0x6c]
movzx ecx, word [edx]
mov ebx, dword [esp + 4]
mov eax, ebx
test cx, cx
je 0x4247b1
add edx, 2
mov eax, ebx
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4247a0
mov word [eax], 0
movzx ecx, word [esp + 0xc]
test cx, cx
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x60]
je 0x4247e1
lea edx, [esp + 0xe]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4247d0
mov word [eax], 0
mov ecx, dword [esp + 0x108]
push dword [esp + 0x54]
push dword [esp + 0x5c]
push ebx
call fcn.004092f0
mov ecx, ebx
mov ebx, eax
jmp dword [0x4452a4]
push ecx
call fcn.00408750
add esp, 4
push 0xbe5098bb
push dword [0x44a870]
call fcn.0043c370
add esp, 8
push dword [esp + 0x58]
call eax
mov eax, dword [0x4452b4]
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x4240a5.15]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x4452f4]
mov ebp, edi
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], 0x80b0a0d
lea ecx, [esp + 0xc]
mov byte [ecx + 6], 0
mov word [ecx + 4], 0
mov ecx, 0xffc01203
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x3fee09]
xor edx, ecx
mov esi, edx
xor esi, 0x10
and edx, 0x6f
add edx, edx
sub edx, esi
inc dl
mov byte [esp + ecx + 0x3fee09], dl
inc ecx
cmp ecx, 0xffc0120a
jne 0x4248d0
mov ecx, dword [0x44a87c]
test ecx, ecx
je 0x424930
mov edx, dword [esp + 0xc]
xor esi, esi
mov edi, dword [0x44a880]
nop
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x424920
inc esi
cmp ecx, esi
jne 0x424910
jmp 0x424930
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42493c
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ebp
mov ebp, dword [esp + 0x48]
jmp dword [0x4452fc]
push eax
push 4
push ecx
push dword [0x44a884]
call fcn.004395d0
add esp, 0x10
mov edi, ebp
mov ebp, dword [esp + 0x48]
jmp dword [0x4452fc]
push esi
call fcn.00401b00
add esp, 4
mov edi, eax
mov dword [esp + 0xc], 0xcccbfef5
mov dword [esp + 0x10], 0xf9fef0fe
mov dword [esp + 0x14], 0xf4c0f8be
mov dword [esp + 0x18], 0xc1c6c8c6
mov dword [esp + 0x1c], 0xf4fbffff
mov word [esp + 0x20], 0xc0f3
mov byte [esp + 0x22], 0x5e
mov dword [esp + 0x23], 0
mov esi, 0x97
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + esi - 0x8b]
mov ebx, ecx
and ebx, esi
mov eax, ebx
or al, 0xfd
inc al
mov edx, ebx
and dl, 0xbd
mul dl
mov edx, eax
add dl, cl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub dl, al
movzx eax, dl
add eax, esi
add al, 0xd
mov byte [esp + esi - 0x8b], al
inc esi
cmp esi, 0xb2
jne 0x4249b0
lea eax, [esp + 0xc]
push eax
push edi
call fcn.00401ec0
add esp, 8
mov edx, 0xffffffff
mov esi, 0xfffffffd
nop
nop
nop
nop
nop
mov ecx, edx
add esi, 3
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
jne 0x424a10
shr esi, 2
movzx ecx, byte [eax + edx - 1]
cmp ecx, 0x3d
je 0x424a31
cmp ecx, 0x2e
jne 0x424a32
dec esi
movzx ecx, byte [eax + edx - 2]
cmp ecx, 0x3d
mov dword [esp + 0x4c], eax
mov dword [esp + 8], edx
je 0x424a49
cmp ecx, 0x2e
jne 0x424a56
mov dword [esp + 0x44], ebp
mov eax, esi
not eax
lea esi, [eax + esi*2]
jmp 0x424a5a
mov dword [esp + 0x44], ebp
mov dword [esp + 0x5c], esi
lea eax, [esi + 1]
push eax
call fcn.00408740
add esp, 4
mov dword [esp + 0x40], eax
cmp dword [esp + 8], 0
je 0x424b71
xor esi, esi
mov ebp, 2
jmp 0x424aa4
mov esi, dword [esp + 4]
lea eax, [ebp + 4]
add ebp, 2
cmp ebp, edx
mov ebp, eax
jae 0x424b71
mov edi, dword [esp + 0x4c]
movzx eax, byte [edi + ebp - 2]
push eax
call fcn.00419850
add esp, 4
mov ebx, eax
movzx eax, byte [edi + ebp - 1]
push eax
call fcn.00419850
mov edx, dword [esp + 0xc]
add esp, 4
shl bl, 2
mov ecx, eax
shr cl, 4
and cl, 3
or cl, bl
lea ebx, [esi + 1]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x40]
mov byte [ebx + esi], cl
cmp ebp, edx
jae 0x424a90
mov ebx, esi
mov byte [esp + 3], al
movzx eax, byte [edi + ebp]
push eax
call fcn.00419850
mov edx, dword [esp + 0xc]
add esp, 4
cmp al, 0x40
mov esi, dword [esp + 4]
je 0x424a94
mov ch, al
movzx eax, byte [esp + 3]
shl al, 4
mov cl, ch
shr cl, 2
and cl, 0xf
or cl, al
lea esi, [ebx + 2]
mov eax, dword [esp + 0x40]
mov byte [eax + ebx + 1], cl
lea eax, [ebp + 1]
cmp eax, edx
jae 0x424a94
mov byte [esp + 4], ch
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + ebp + 1]
push eax
call fcn.00419850
add esp, 4
cmp al, 0x40
je 0x424b68
movzx ecx, byte [esp + 4]
shl cl, 6
add al, cl
mov ecx, ebx
and ecx, 1
or esi, 1
add esi, ecx
mov ecx, dword [esp + 0x40]
mov byte [ecx + ebx + 2], al
mov edx, dword [esp + 8]
jmp 0x424a94
mov eax, dword [esp + 0x5c]
add eax, 0xfffffffb
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x40]
add eax, 5
mov dword [esp + 0x8c], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
push 0x14e20a34
push dword [0x44a888]
call fcn.0043c370
add esp, 8
lea ecx, [esp + 0x54]
lea edx, [esp + 0x88]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x60]
push esi
call fcn.00401b00
add esp, 4
mov edi, eax
mov dword [esp + 0xc], 0xcccbfef5
mov dword [esp + 0x10], 0xf9fef0fe
mov dword [esp + 0x14], 0xf4c0f8be
mov dword [esp + 0x18], 0xc1c6c8c6
mov dword [esp + 0x1c], 0xf4fbffff
mov word [esp + 0x20], 0xc0f3
mov byte [esp + 0x22], 0x5e
mov dword [esp + 0x23], 0
mov esi, 0x97
nop
nop
nop
movzx ecx, byte [esp + esi - 0x8b]
mov ebx, ecx
and ebx, esi
mov eax, ebx
or al, 0xfd
inc al
mov edx, ebx
and dl, 0xbd
mul dl
mov edx, eax
add dl, cl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub dl, al
movzx eax, dl
add eax, esi
add al, 0xd
mov byte [esp + esi - 0x8b], al
inc esi
cmp esi, 0xb2
jne 0x424c20
lea eax, [esp + 0xc]
push eax
push edi
call fcn.00401ec0
add esp, 8
mov edx, 0xffffffff
mov esi, 0xfffffffd
nop
nop
nop
nop
nop
mov ecx, edx
add esi, 3
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
jne 0x424c80
shr esi, 2
movzx ecx, byte [eax + edx - 1]
cmp ecx, 0x3d
je 0x424ca1
cmp ecx, 0x2e
jne 0x424ca2
dec esi
movzx ecx, byte [eax + edx - 2]
cmp ecx, 0x3d
mov dword [esp + 0x4c], eax
mov dword [esp + 4], edx
je 0x424cb9
cmp ecx, 0x2e
jne 0x424cc6
mov dword [esp + 0x44], ebp
mov eax, esi
not eax
lea esi, [eax + esi*2]
jmp 0x424cca
mov dword [esp + 0x44], ebp
mov dword [esp + 0x5c], esi
lea eax, [esi + 1]
push eax
call fcn.00408740
add esp, 4
mov dword [esp + 8], eax
cmp dword [esp + 4], 0
je 0x424dd3
xor esi, esi
mov ebp, 2
jmp 0x424d12
mov esi, ebx
lea eax, [ebp + 4]
add ebp, 2
cmp ebp, edx
mov ebp, eax
jae 0x424dd3
mov edi, dword [esp + 0x4c]
movzx eax, byte [edi + ebp - 2]
push eax
call fcn.00419850
add esp, 4
mov ebx, eax
movzx eax, byte [edi + ebp - 1]
push eax
call fcn.00419850
mov edx, dword [esp + 8]
add esp, 4
shl bl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, bl
lea ebx, [esi + 1]
mov ecx, dword [esp + 8]
mov dword [esp + 0x40], esi
mov byte [ecx + esi], ah
cmp ebp, edx
jae 0x424d00
mov byte [esp + 3], al
movzx eax, byte [edi + ebp]
push eax
call fcn.00419850
mov edx, dword [esp + 8]
add esp, 4
cmp al, 0x40
mov esi, ebx
je 0x424d02
movzx ecx, byte [esp + 3]
shl cl, 4
mov ebx, eax
shr al, 2
and al, 0xf
or al, cl
mov edi, dword [esp + 0x40]
lea esi, [edi + 2]
mov ecx, dword [esp + 8]
mov byte [ecx + edi + 1], al
lea eax, [ebp + 1]
cmp eax, edx
jae 0x424d02
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + ebp + 1]
push eax
call fcn.00419850
add esp, 4
cmp al, 0x40
je 0x424dca
shl bl, 6
add al, bl
mov ecx, edi
and ecx, 1
or esi, 1
add esi, ecx
mov ecx, dword [esp + 8]
mov byte [ecx + edi + 2], al
mov edx, dword [esp + 4]
jmp 0x424d02
mov eax, dword [esp + 0x5c]
add eax, 0xfffffffb
mov dword [esp + 0x88], eax
mov eax, dword [esp + 8]
add eax, 5
mov dword [esp + 0x8c], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
push 0x14e20a34
push dword [0x44a888]
call fcn.0043c370
add esp, 8
lea ecx, [esp + 0x54]
lea edx, [esp + 0x88]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x60]
jmp dword [0x445294]
int3