Function at 0x10033680
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x250
call fcn.10025910
cmp dword [0x1004cd50], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
jne 0x1003375e
mov esi, 0x35fae3d7
mov edi, 0xfffff800
push 0x800
push 0x100467ba
call fcn.10009650
add esp, 8
mov dword [esp], eax
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov bh, byte [eax + edi + 0x800]
mov byte [esp + 4], bh
not bh
and bh, 0x4d
push 0xff
push 0x4d
call fcn.100077e0
add esp, 8
mov bl, al
movzx eax, byte [esp + 4]
mov ecx, esi
and al, bl
or al, bh
mov bh, al
mov eax, ecx
not al
movzx eax, al
push 0x4d
push eax
call fcn.100073a0
add esp, 8
mov ecx, esi
mov edx, dword [esp]
and bl, cl
rol ecx, 8
or bl, al
mov esi, ecx
xor bl, bh
mov byte [edx + edi + 0x800], bl
inc edi
jne 0x100336d0
push 0
mov esi, dword [esp + 4]
push esi
call fcn.10005f60
add esp, 8
mov dword [0x1004cd50], eax
push esi
call fcn.1002c820
add esp, 4
push 0
push dword [0x1004cd50]
call fcn.1000c150
add esp, 8
test al, 1
jne 0x10033799
lea eax, [esp + 0x84]
push eax
push str._t_S_v_UZJ__N
call fcn.1000a030
add esp, 8
push eax
push dword [0x1004cd50]
call fcn.1003bc10
add esp, 8
lea ecx, [esp + 0x100]
push 0x40
push dword [esp + 0x10]
push dword [esp + 0x18]
push ecx
call eax
add esp, 0x10
cmp dword [0x1004e5d0], 0
jne 0x10033815
xor edi, edi
mov ebx, 0x35fae3d7
push 0x800
push 0x100467ba
call fcn.10009650
add esp, 8
mov esi, eax
nop
nop
nop
xor byte [esi + edi], bl
push 0x97d1c009
call fcn.10008470
add esp, 4
mov edx, ebx
mov ecx, eax
shr ebx, 0x18
shl edx, cl
or ebx, edx
push 1
push edi
call fcn.100050e0
add esp, 8
mov edi, eax
cmp eax, 0x800
jne 0x100337c0
push 0
push esi
call fcn.10005f60
add esp, 8
mov dword [0x1004e5d0], eax
push esi
call fcn.1002c820
add esp, 4
cmp dword [0x1004e5d0], 0
je 0x100338a7
lea eax, [esp + 0x95]
push eax
push str._t_S_v_UZJ__N
call fcn.1000a030
add esp, 8
push eax
push dword [0x1004e5d0]
call fcn.1003bc10
add esp, 8
mov ebx, dword [esp + 0x13c]
mov dword [esp], eax
mov esi, ebx
sar esi, 0x1f
push dword [esp + 0xc]
push dword [esp + 0x14]
push 0
push 0
call fcn.10002600
add esp, 0x10
mov edi, eax
mov dword [esp + 4], edx
push esi
push ebx
push 0
push 0
call fcn.10002600
add esp, 0x10
add eax, edi
adc edx, dword [esp + 4]
push edx
push eax
push 0
push 0
call fcn.10002600
add esp, 0x10
mov edi, eax
mov ebx, edx
push 0x97d1c109
call fcn.10008470
add esp, 4
lea ecx, [esp + 0x140]
push eax
push ebx
push edi
push ecx
call dword [esp + 0x10]
add esp, 0x10
cmp dword [esp + 0x1c8], 0
je 0x10034033
cmp dword [0x1004c1d4], 0
jne 0x100339c5
xor esi, esi
mov ebx, 0x35fae3d7
push 0x800
push 0x100467ba
call fcn.10009650
add esp, 8
mov dword [esp + 0x18], eax
nop
mov eax, dword [esp + 0x18]
mov edi, ebx
mov dword [esp], esi
shl edi, 8
xor byte [eax + esi], bl
shr ebx, 0x18
mov eax, ebx
not eax
mov dword [esp + 8], eax
push 0xffffffffffffffff
push 0xcf7b8f2f
call fcn.10006690
add esp, 8
mov ecx, edi
mov esi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 4], edi
and ecx, 0xcf7b8f00
and esi, edi
xor ecx, 0xcf7b8f2f
or esi, ecx
push 0x58aa4f2e
call fcn.10008470
add esp, 4
push eax
push dword [esp + 0xc]
call fcn.100067d0
add esp, 8
mov ecx, dword [esp + 0x14]
mov edi, ecx
and edi, ebx
or edi, eax
xor edi, esi
push ecx
push 0xcf7b8f2f
call fcn.10005680
add esp, 8
push ebx
push dword [esp + 8]
call fcn.10005680
add esp, 8
push 0xf7b124e9
call fcn.10008470
add esp, 4
push eax
push dword [esp + 4]
call fcn.100050e0
add esp, 8
mov esi, eax
add esi, 0x9f9f1b19
push 0x97d1c801
call fcn.10008470
add esp, 4
cmp esi, eax
mov ebx, edi
jne 0x100338e0
push 0
mov esi, dword [esp + 0x1c]
push esi
call fcn.10005f60
add esp, 8
mov dword [0x1004c1d4], eax
push esi
call fcn.1002c820
add esp, 4
cmp dword [0x1004c1d4], 0
je 0x10033a06
lea eax, [esp + 0x75]
push eax
push str._t_S_v_UZJ__N
call fcn.1000a030
add esp, 8
push eax
push dword [0x1004c1d4]
call fcn.1003bc10
add esp, 8
mov ecx, dword [esp + 0x1c8]
mov edx, dword [esp + 0xc]
lea esi, [esp + 0x28]
add ecx, dword [esp + 0x10]
adc edx, 0
push 0x28
push edx
push ecx
push esi
call eax
add esp, 0x10
mov eax, dword [esp + 0x3c]
shl eax, 2
push eax
call fcn.10022000
add esp, 4
test eax, eax
mov dword [esp + 0x24], eax
je 0x10034033
lea eax, [esp + 0x24]
lea ecx, [esp + 0x60]
push eax
call fcn.100414c0
cmp dword [0x1004f0a8], 0
jne 0x10033b4e
mov edi, 0xfffff800
push 0x800
push 0x100467ba
call fcn.10009650
add esp, 8
mov dword [esp + 0x14], eax
mov eax, 0x35fae3d7
nop
nop
nop
mov esi, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 8], edi
mov bh, byte [esi + edi + 0x800]
mov bl, bh
not bl
and bl, al
push 0xff
push eax
call fcn.100077e0
add esp, 8
and al, bh
or al, bl
mov ebx, dword [esp]
mov byte [esi + edi + 0x800], al
mov eax, ebx
shl eax, 8
mov edi, eax
mov dword [esp + 4], eax
push 0x97d1c019
call fcn.10008470
add esp, 4
mov ecx, eax
not edi
shr ebx, cl
mov dword [esp], ebx
not ebx
push 0x97145bdb
call fcn.10008470
add esp, 4
mov esi, eax
and esi, edi
push 0xff3a6425
push dword [esp + 8]
call fcn.100067d0
add esp, 8
mov edi, eax
mov eax, dword [esp]
and ebx, 0xc59bda
or edi, esi
and eax, 0xff3a6425
push eax
push ebx
call fcn.10005680
add esp, 8
mov esi, eax
xor esi, edi
mov edi, dword [esp + 8]
push 0x97145bdb
call fcn.10008470
add esp, 4
push 0xff3a6425
push eax
call fcn.10005680
add esp, 8
and eax, dword [esp + 4]
and eax, dword [esp]
or eax, esi
inc edi
jne 0x10033a60
push 0
mov esi, dword [esp + 0x18]
push esi
call fcn.10005f60
add esp, 8
mov dword [0x1004f0a8], eax
push esi
call fcn.1002c820
add esp, 4
cmp dword [0x1004f0a8], 0
je 0x10033b94
lea eax, [esp + 0xa6]
push eax
push str._t_S_v_UZJ__N
call fcn.1000a030
add esp, 8
push eax
push dword [0x1004f0a8]
call fcn.1003bc10
add esp, 8
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0xc]
shl ecx, 2
add edx, dword [esp + 0x10]
adc esi, 0
push ecx
push esi
push edx
push dword [esp + 0x30]
call eax
add esp, 0x10
mov eax, dword [esp + 0x3c]
add eax, eax
push eax
call fcn.10022000
add esp, 4
mov dword [esp + 0x20], eax
push 0
push eax
call fcn.1000c150
add esp, 8
xor esi, esi
test al, 1
mov edi, 0
jne 0x1003407c
lea eax, [esp + 0x20]
lea ecx, [esp + 0x58]
push eax
call fcn.100414c0
cmp dword [0x1004d51c], 0
jne 0x10033c99
push 0x97d1c801
call fcn.10008470
add esp, 4
mov ebx, 0x35fae3d7
mov edi, 0xfffff800
push eax
push 0x100467ba
call fcn.10009650
add esp, 8
mov dword [esp], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [eax + edi + 0x800]
mov ecx, eax
mov dword [esp + 8], eax
not cl
and cl, bl
mov byte [esp + 4], cl
push 0xff
push ebx
call fcn.100077e0
add esp, 8
movzx eax, al
push eax
mov esi, dword [esp + 0xc]
push esi
call fcn.100073a0
add esp, 8
or al, byte [esp + 4]
mov byte [esp + 4], al
push ebx
push esi
call fcn.100077e0
add esp, 8
mov eax, dword [esp]
movzx ecx, byte [esp + 4]
rol ebx, 8
mov byte [eax + edi + 0x800], cl
inc edi
jne 0x10033c10
push 0
mov esi, dword [esp + 4]
push esi
call fcn.10005f60
add esp, 8
mov dword [0x1004d51c], eax
push esi
call fcn.1002c820
add esp, 4
cmp dword [0x1004d51c], 0
je 0x10033d1f
lea eax, [esp + 0xb9]
push eax
push str._t_S_v_UZJ__N
call fcn.1000a030
add esp, 8
push eax
push dword [0x1004d51c]
call fcn.1003bc10
add esp, 8
mov edi, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
add edi, edi
push 0x657dfd11
push 0xc7ac3cd6
call fcn.10003120
add esp, 8
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
sub esi, eax
sbb ebx, edx
add esi, dword [esp + 4]
adc ebx, 0
push 0x657dfd11
push 0xc7ac3cd6
call fcn.10003120
add esp, 8
push edx
push eax
push ebx
push esi
call fcn.10007540
add esp, 0x10
push edi
push edx
push eax
push dword [esp + 0x2c]
call dword [esp + 0x10]
add esp, 0x10
mov eax, dword [esp + 0x40]
shl eax, 2
push eax
call fcn.10022000
add esp, 4
test eax, eax
mov dword [esp + 0x1c], eax
je 0x1003403f
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x50]
push eax
call fcn.100414c0
cmp dword [0x1004f088], 0
jne 0x10033e38
mov ebx, 0x35fae3d7
mov edi, 0xfffff800
push 0x800
push 0x100467ba
call fcn.10009650
add esp, 8
mov dword [esp + 8], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 8]
movzx eax, byte [esi + edi + 0x800]
mov dword [esp], eax
not al
movzx eax, al
push eax
push ebx
call fcn.100073a0
add esp, 8
mov ecx, dword [esp]
mov edx, ebx
not dl
and dl, cl
or dl, al
mov byte [esp + 4], dl
push ebx
push ecx
call fcn.100077e0
add esp, 8
movzx eax, byte [esp + 4]
mov byte [esi + edi + 0x800], al
mov eax, ebx
shr ebx, 0x18
shl eax, 8
xor ebx, 0x4eaf03fb
xor eax, 0x4eaf03fb
push ebx
push eax
call fcn.10006690
add esp, 8
mov dword [esp], eax
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.10006690
add esp, 8
mov esi, eax
push 0xd97ec3fa
call fcn.10008470
add esp, 4
mov ebx, eax
or ebx, 0xb150fc04
and ebx, esi
or ebx, dword [esp]
inc edi
jne 0x10033d80
push 0
mov esi, dword [esp + 0xc]
push esi
call fcn.10005f60
add esp, 8
mov dword [0x1004f088], eax
push esi
call fcn.1002c820
add esp, 4
cmp dword [0x1004f088], 0
je 0x10033e9c
lea eax, [esp + 0x69]
push eax
push str._t_S_v_UZJ__N
call fcn.1000a030
add esp, 8
push eax
push dword [0x1004f088]
call fcn.1003bc10
add esp, 8
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x48]
mov esi, eax
shl edi, 2
push 0xbba84814
push 0x630a2b6c
push dword [esp + 0x14]
push dword [esp + 0x1c]
call fcn.10002600
add esp, 0x10
add eax, ebx
adc edx, 0
add eax, 0x630a2b6c
adc edx, 0xbba84814
push edi
push edx
push eax
push dword [esp + 0x28]
call esi
add esp, 0x10
cmp dword [esp + 0x3c], 0
je 0x10034039
mov eax, dword [esp + 0x10]
xor edi, edi
mov ecx, 0
neg eax
sbb ecx, dword [esp + 0xc]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
jmp 0x10033f4b
lea eax, [esp + 0xcc]
push eax
push 0x10048a36
call fcn.1000a030
add esp, 8
push eax
push dword [0x1004cde0]
call fcn.1003bc10
add esp, 8
mov dword [esp], eax
push esi
call fcn.10005160
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x1c]
xor ecx, ecx
sub ecx, dword [eax + edi*4]
mov eax, 0
sbb eax, eax
push eax
push ecx
push dword [esp + 0x10]
push dword [esp + 0x10]
call fcn.10007540
add esp, 0x10
neg eax
mov ecx, 0
sbb ecx, edx
push ebx
push ecx
push eax
push esi
call dword [esp + 0x10]
add esp, 0x10
test al, al
jne 0x10034045
inc edi
cmp edi, dword [esp + 0x3c]
jae 0x10034039
lea eax, [esp + 0xe1]
push eax
push 0x10049df0
call fcn.1000a030
add esp, 8
cmp dword [0x1004cde0], 0
mov esi, eax
jne 0x10033ed0
mov dword [esp + 0x14], edi
mov ebx, 0x35fae3d7
xor edi, edi
mov dword [esp + 0x18], esi
push 0x800
push 0x100467ba
call fcn.10009650
add esp, 8
mov dword [esp], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx ecx, byte [eax + edi]
mov eax, ecx
mov esi, ecx
not al
movzx eax, al
push eax
push ebx
call fcn.100073a0
add esp, 8
mov edx, ebx
not bl
mov ecx, esi
and bl, cl
or bl, al
push edx
mov esi, edx
push ecx
call fcn.100077e0
add esp, 8
mov eax, dword [esp]
mov byte [eax + edi], bl
mov eax, esi
shr esi, 0x18
shl eax, 8
push esi
push eax
call fcn.10005680
add esp, 8
mov ebx, eax
inc edi
push 0x97d1c801
call fcn.10008470
add esp, 4
cmp edi, eax
jne 0x10033fa0
push 0
mov esi, dword [esp + 4]
push esi
call fcn.10005f60
add esp, 8
mov dword [0x1004cde0], eax
push esi
call fcn.1002c820
add esp, 4
cmp dword [0x1004cde0], 0
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
jne 0x10033ed0
jmp 0x10033f40
xor esi, esi
xor edi, edi
jmp 0x10034085
xor esi, esi
xor edi, edi
jmp 0x1003406a
xor esi, esi
xor edi, edi
jmp 0x10034073
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
movzx ecx, word [ecx + edi*2]
push 0
push dword [eax + ecx*4]
push dword [esp + 0x14]
push dword [esp + 0x1c]
call fcn.10007540
add esp, 0x10
mov esi, eax
mov edi, edx
lea ecx, [esp + 0x50]
call fcn.100438d0
lea ecx, [esp + 0x58]
call fcn.100438d0
lea ecx, [esp + 0x60]
call fcn.100438d0
mov eax, esi
mov edx, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret