Function at 0x4248c5
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf0
mov dword [esp], 0x33f331ed
mov dword [esp + 4], 0x2fbe2dbc
mov dword [esp + 8], 0x2b8b2994
mov dword [esp + 0xc], 0x278725a8
mov dword [esp + 0x10], 0x232221fd
lea eax, [esp + 0x14]
mov word [esp + 0x14], 0
xor ecx, ecx
nop
nop
mov edx, ecx
add dl, 0x4c
xor dl, byte [esp + ecx]
add dl, 0x84
mov byte [esp + ecx], dl
inc ecx
cmp ecx, 0x16
jne 0x424020
lea esi, [esp + 0xaa]
mov edx, esp
mov edi, esi
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xbe]
xor ebx, ebx
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x58]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x4497f4]
mov ebp, dword [esp + 0x58]
test ebp, ebp
jns 0x42407d
mov eax, 0xffffffff
jmp 0x424084
lea eax, [ebp*2]
push eax
call fcn.00408630
add esp, 4
push edi
push ebp
mov dword [esp + 0x40], eax
push eax
push 9
push esi
push 0
call dword [0x4497f4]
mov dword [esp], 0x178f1964
mov dword [esp + 4], 0x138d159b
mov dword [esp + 8], 0xf801183
mov dword [esp + 0xc], 0xb0a0d90
lea edx, [esp + 0x10]
mov byte [esp + 0x10], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0x86
xor al, byte [esp + ebx]
add al, 0x62
mov byte [esp + ebx], al
inc ebx
cmp ebx, 0x11
jne 0x4240d0
lea ebp, [esp + 0x9a]
mov eax, esp
mov edi, ebp
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xaa]
xor eax, eax
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp], 0x63fb61a4
mov dword [esp + 4], 0x67c565f7
mov dword [esp + 8], 0x5bc859c7
mov dword [esp + 0xc], 0x5f9d5df8
mov dword [esp + 0x10], 0x53cc51f1
mov dword [esp + 0x14], 0x57c455f5
mov dword [esp + 0x18], 0x4b4a49c1
lea ebx, [esp + 0x1c]
mov word [esp + 0x1c], 0
mov byte [esp + 0x1e], 0
nop
mov ecx, eax
add cl, 0x18
xor cl, byte [esp + eax]
add cl, 0x88
mov byte [esp + eax], cl
inc eax
cmp eax, 0x1f
jne 0x424150
lea edx, [esp + 0xd4]
mov eax, esp
mov edi, edx
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xf0]
xor esi, esi
xor ecx, ecx
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp], 0xc16dc708
mov dword [esp + 4], 0xcd6fc35d
mov dword [esp + 8], 0xc95ccf5d
mov dword [esp + 0xc], 0xb57acb64
mov dword [esp + 0x10], 0xb174b708
lea ebx, [esp + 0x14]
mov dword [esp + 0x14], 0xb3b0
mov byte [esp + 0x18], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + esi]
mov edi, esi
and edi, 0xf
xor edi, 0xe3e4d84f
mov eax, esi
and eax, 0x10
sub eax, edi
xor eax, ecx
mov ecx, 1
sub ecx, eax
and ecx, 1
lea edi, [ecx + ecx]
xor edi, 2
and eax, 0xfe
or eax, ecx
add eax, edi
add al, 0x8a
mov byte [esp + esi], al
inc esi
cmp esi, 0x19
jne case.default.0x424267
lea esi, [esp + 0xbe]
mov eax, esp
mov edi, esi
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xd2]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], esi
mov eax, dword [esp + 0x38]
add eax, 2
mov dword [esp + 0x64], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x40], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x444414]
jmp dword [0x44441c]
push dword [esp + 0x38]
call fcn.00408640
add esp, 4
jmp dword [0x4444e4]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + ecx + 0x8c]
mov edi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + edi + 2], 0
lea edi, [edi + 2]
jne 0x4242c0
mov dword [esp + 0x68], edi
sar edi, 1
mov eax, dword [esp + 0x58]
lea ecx, [edi + eax]
add ecx, 0xd
test ecx, ecx
jns 0x4242f0
mov eax, 0xffffffff
jmp 0x4242f9
add eax, edi
lea eax, [eax*2 + 0x1a]
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], edx
push eax
call fcn.00408630
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x38]
movzx ecx, word [eax]
mov dword [esp + 0x50], edi
test cx, cx
je 0x424341
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x50]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424330
mov word [edi], 0x5c
mov dword [esp], 0x41b247a0
mov dword [esp + 4], 0x4daf43d1
mov dword [esp + 8], 0x49da4faf
mov dword [esp + 0xc], 0x75b74b68
mov dword [esp + 0x10], 0x719577e8
mov dword [esp + 0x14], 0x7d9d73ec
mov word [esp + 0x18], 0x7f7c
mov dword [esp + 0x1a], 0
xor ebp, ebp
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edx]
mov esi, edx
xor esi, 0x80f5c1fa
mov ecx, ebp
and ecx, 0xa
sub ecx, esi
mov esi, 0x3688ba74
sub esi, ecx
add ecx, 0xb
mov eax, esi
and eax, 0x912a5c5f
and ecx, 0x20
or ecx, eax
and esi, 0x20
xor esi, 0x488000a0
or esi, ecx
xor ebx, 0x912bdf5f
mov eax, ebx
and eax, esi
add eax, eax
sub esi, eax
add esi, ebx
mov eax, esi
not eax
or eax, 0x95786e2a
add eax, esi
or esi, 0x95786e2a
lea ecx, [esi + eax]
add ecx, 0x3227eb9d
mov eax, ecx
xor eax, 0x9b
and ecx, 0x64
add ecx, ecx
sub ecx, eax
mov byte [esp + edx], cl
inc edx
add ebp, 2
cmp edx, 0x1e
jne 0x424390
add edi, 2
mov ebp, dword [esp + 0x3c]
movzx ecx, word [ebp]
test cx, cx
je 0x424431
lea edx, [ebp + 2]
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424420
mov word [edi], 0
movzx ecx, word [esp]
test cx, cx
je 0x424461
lea edx, [esp + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424450
mov word [edi], 0
lea eax, [esp + 0x54]
push 0x60
push 3
push 0x120089
push eax
push dword [esp + 0x60]
call fcn.0043c010
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444424]
xor ebx, ebx
mov eax, dword [0x4444bc]
jmp 0x4245c0
lea eax, [esp + 0x74]
push 0
push eax
push dword [esp + 0x5c]
call fcn.0043c370
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44442c]
mov esi, dword [esp + 0x74]
lea eax, [esi + 1]
push eax
call fcn.00408630
add esp, 4
push 0
push esi
mov esi, eax
push eax
push dword [esp + 0x60]
call fcn.0043c450
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x444434]
mov eax, dword [esp + 0x74]
mov byte [esi + eax], 0
push esi
call fcn.00401000
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x44443c]
jmp dword [0x4444ac]
mov eax, dword [esp + 0x54]
mov dword [esp], 0x1c1d1a1b
mov dword [esp + 4], 0
mov esi, 0xab
mov edx, 0x54
nop
nop
mov edi, edx
and edi, 0x51
mov ecx, esi
and ecx, 0x8e
sub ecx, edi
xor cl, byte [esp + esi - 0xab]
add cl, 0xde
mov byte [esp + esi - 0xab], cl
inc esi
dec edx
cmp esi, 0xb3
jne 0x424540
mov ecx, dword [0x4497f8]
test ecx, ecx
je 0x4245b0
mov edx, dword [esp]
xor esi, esi
mov ebp, dword [0x4497fc]
nop
cmp dword [ebp + esi*8], 0xb62b8d10
je 0x424591
inc esi
cmp ecx, esi
jne 0x424580
jmp 0x4245b0
mov ecx, dword [ebp + esi*8 + 4]
cmp ecx, edx
je 0x4245b0
push eax
push 4
push ecx
push dword [0x449800]
call fcn.00438810
add esp, 0x10
nop
nop
nop
nop
nop
mov eax, dword [0x4444bc]
mov ebp, dword [esp + 0x3c]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x7c], eax
push eax
call fcn.00401b00
add esp, 4
mov dword [esp], 0xd0d5c2c7
mov dword [esp + 4], 0xc3cec4ce
mov dword [esp + 8], 0xd8ccd48e
mov dword [esp + 0xc], 0xfbf6fcf6
mov dword [esp + 0x10], 0xe8e5eded
mov word [esp + 0x14], 0xf4e1
mov byte [esp + 0x16], 0x4e
mov dword [esp + 0x17], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx]
mov edi, ebx
and edi, 0x28
mov edx, ecx
xor edx, 0x8a7f8694
add edx, edi
xor edx, esi
lea esi, [edx + 0x4b825f1b]
not edx
add edx, edx
and edx, 2
mov edi, edx
and edi, esi
or edx, esi
xor edx, 1
add edx, edi
mov byte [esp + ecx], dl
inc ecx
add ebx, 2
cmp ecx, 0x1b
jne 0x424920
mov ecx, esp
push ecx
push eax
call fcn.00401ec0
add esp, 8
mov edx, 0xffffffff
mov ecx, 0xfffffffd
nop
add ecx, 3
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
jne 0x424970
shr ecx, 2
mov esi, edx
mov dword [esp + 0x34], edx
movzx edx, byte [eax + edx - 1]
cmp edx, 0x3d
je 0x424995
cmp edx, 0x2e
jne 0x424996
dec ecx
mov edx, dword [esp + 0x34]
movzx edx, byte [eax + edx - 2]
cmp edx, 0x3d
mov dword [esp + 0x48], eax
je 0x4249ad
cmp edx, 0x2e
jne 0x4249ae
dec ecx
mov dword [esp + 0x78], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408630
add esp, 4
mov dword [esp + 0x30], eax
cmp dword [esp + 0x34], 0
je 0x424ac7
xor edi, edi
xor esi, esi
jmp 0x4249fb
mov ebp, dword [esp + 0x3c]
mov eax, esi
and eax, 4
xor esi, 4
lea esi, [esi + eax*2]
mov edi, dword [esp + 0x4c]
cmp esi, edx
jae 0x424ac7
mov ebp, dword [esp + 0x48]
movzx eax, byte [ebp + esi]
push eax
call fcn.00419eb0
add esp, 4
mov ebx, eax
movzx eax, byte [ebp + esi + 1]
push eax
call fcn.00419eb0
mov edx, dword [esp + 0x38]
add esp, 4
mov bh, al
shl bl, 2
shr al, 4
and al, 3
or al, bl
lea ecx, [edi + 1]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x6c], edi
mov byte [ecx + edi], al
lea eax, [esi + 2]
cmp eax, edx
jae 0x4249e0
mov ecx, dword [esp + 0x48]
movzx eax, byte [ecx + eax]
push eax
call fcn.00419eb0
mov edx, dword [esp + 0x38]
add esp, 4
cmp al, 0x40
mov ebp, dword [esp + 0x3c]
je 0x4249e4
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edi, dword [esp + 0x6c]
lea ecx, [edi + 2]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x30]
mov byte [ecx + edi + 1], al
lea eax, [esi + 3]
cmp eax, edx
jae 0x4249e4
mov ecx, dword [esp + 0x48]
movzx eax, byte [ecx + eax]
push eax
call fcn.00419eb0
mov edx, dword [esp + 0x38]
add esp, 4
cmp al, 0x40
je 0x4249e4
shl bl, 6
add al, bl
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x6c]
mov byte [ecx + edi + 2], al
add edi, 3
mov dword [esp + 0x4c], edi
jmp 0x4249e4
mov eax, dword [esp + 0x78]
add eax, 0xfffffffb
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x30]
add eax, 5
mov dword [esp + 0x88], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
push 0x14e20a34
push dword [0x449804]
call fcn.0043b560
add esp, 8
lea ecx, [esp + 0x5c]
lea edx, [esp + 0x84]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x444444]
cmp dword [esp + 0x44], 0xfffffff8
jge 0x424b3d
mov eax, 0xffffffff
jmp 0x424b44
mov eax, dword [esp + 0x68]
add eax, 0x10
push eax
call fcn.00408630
add esp, 4
mov esi, eax
mov dword [esp], 0xe90eebd5
mov dword [esp + 4], 0xeddcef18
mov dword [esp + 8], 0xf10af318
mov dword [esp + 0xc], 0xf5f6f704
mov word [esp + 0x10], 0
mov eax, 0xa10bcf27
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x5ef430d9]
xor ecx, eax
mov edx, ecx
and edx, 0x3c
xor ecx, 0x3c
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0x5ef430d9], cl
inc eax
cmp eax, 0xa10bcf39
jne 0x424b80
movzx ecx, word [ebp]
mov eax, esi
test cx, cx
je 0x424bd1
lea edx, [ebp + 2]
mov eax, esi
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 0x424bc0
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
je 0x424c01
lea edx, [esp + 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 0x424bf0
mov word [eax], 0
mov ecx, dword [esp + 0x104]
push dword [esp + 0x5c]
push dword [esp + 0x64]
push esi
call fcn.00409320
mov ebx, eax
jmp dword [0x44444c]
jmp dword [0x444454]
jmp dword [0x4444a4]
mov esi, eax
jmp dword [0x444478]
push dword [esp + 0x60]
call esi
nop
push dword [esp + 0x60]
call esi
jmp dword [0x444480]
push 0xbe5098bb
push dword [0x4497ec]
call fcn.0043b560
add esp, 8
nop
push 0xbe5098bb
push dword [0x4497ec]
call fcn.0043b560
add esp, 8
jmp dword [0x44446c]
push esi
call fcn.00408640
add esp, 4
push esi
call fcn.00408640
add esp, 4
jmp dword [0x444460]
jmp dword [0x444464]
jmp dword [0x4444e4]