Function at 0x35f7a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x194
mov eax, dword [0x39f05c]
mov dword [esp + 0x114], 0x3020900
mov ecx, 0x3fc91aff
nop
movzx edx, byte [esp + ecx - 0x3fc919eb]
lea esi, [ecx - 0x3fc91abf]
and esi, edx
add esi, esi
sub edx, esi
add edx, ecx
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
mov byte [esp + ecx - 0x3fc919eb], dl
inc ecx
cmp ecx, 0x3fc91b03
jne 0x35e1c0
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x14], 0x1fb719a3
mov dword [esp + 0x18], 0x63ca1dae
mov dword [esp + 0x1c], 0x67d261d4
mov dword [esp + 0x20], 0x6b1865d4
mov dword [esp + 0x24], 0x6fc269cc
mov dword [esp + 0x28], 0x73726dc0
mov byte [esp + 0x2c], 0
xor edx, edx
nop
mov esi, edx
and esi, 0x18
mov edi, edx
and edi, 2
mov ebp, edi
xor ebp, 2
imul ebp, esi
or esi, 2
imul esi, edi
mov ebx, edx
xor ebx, 0xba
add ebx, ebp
add ebx, esi
xor bl, byte [esp + edx + 0x14]
add bl, 0x5e
mov byte [esp + edx + 0x14], bl
inc edx
cmp edx, 0x19
jne case.default.0x35e27d
lea esi, [esp + 0x14]
push ecx
push 0
push esi
call eax
mov ecx, 0x39f024
push eax
call fcn.0038fc50
movzx eax, al
jmp dword [eax*4 + 0x3999ac]
xor eax, eax
jmp 0x35e97b
push 0xf2ffbc90
push dword [0x39f024]
call fcn.00393a90
add esp, 8
mov dword [0x39f02c], eax
push 0x5c21b65e
push dword [0x39f024]
call fcn.00393a90
add esp, 8
mov dword [fcn.0039f030], eax
push 0xc2eb3b71
push dword [0x39f024]
call fcn.00393a90
add esp, 8
mov dword [0x39f034], eax
push 0xa645cf1f
push dword [0x39f024]
call fcn.00393a90
add esp, 8
mov dword [0x39f038], eax
push 0xf379b9d8
push dword [0x39f024]
call fcn.00393a90
add esp, 8
mov dword [0x39f03c], eax
push 0xd225aa76
push dword [0x39f024]
call fcn.00393a90
add esp, 8
mov dword [fcn.0039f040], eax
push 0xa373434b
push dword [0x39f024]
call fcn.00393a90
add esp, 8
mov dword [fcn.0039f044], eax
push 0xce21043e
push dword [0x39f024]
call fcn.00393a90
add esp, 8
mov dword [fcn.0039f048], eax
push 0x7eecc3d7
push dword [0x39f024]
call fcn.00393a90
add esp, 8
mov dword [fcn.0039f04c], eax
push 0x2c692ac4
push dword [0x39f024]
call fcn.00393a90
add esp, 8
mov dword [0x39f050], eax
push 0xf13635ff
push dword [0x39f024]
call fcn.00393a90
add esp, 8
mov dword [0x39f054], eax
push 0x8040f1d2
push dword [0x39f024]
call fcn.00393a90
add esp, 8
mov dword [fcn.0039f058], eax
mov dword [esp + 4], 0
lea edi, [esp + 0x16]
mov eax, dword [case.0x35e27d.4]
xor ebp, ebp
jmp case.0x35e27d.1
mov eax, 1
jmp dword [eax*4 + 0x3999e4]
add ebp, 4
mov eax, dword [case.0x35e27d.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp ebp, 0x24
setne al
jmp dword [eax*4 + 0x3999c4]
lea ebx, [esp + 0x114]
push ebx
push dword [ebp + 0x3979a4]
call fcn.0038c620
add esp, 8
push 0
push ebx
push 0x80
push esi
call fcn.0035e990
add esp, 0x10
jmp dword [0x3999d0]
push esi
call fcn.0035ec20
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.0035ec20
add esp, 4
jmp dword [0x3999d4]
movzx eax, al
jmp dword [eax*4 + 0x3999dc]
movzx ecx, word [esp + 0x14]
mov eax, 0x39f060
test cx, cx
je 0x35e471
mov edx, edi
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x35e460
mov word [eax], 0
xor eax, eax
mov cl, 1
mov dword [esp + 4], ecx
jmp dword [eax*4 + 0x3999e4]
mov eax, dword [esp + 4]
mov ecx, eax
and cl, 1
movzx eax, cl
jmp dword [eax*4 + 0x3999ec]
mov byte [esp], cl
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x51ba4fa4
mov dword [esp + 0x18], 0x55a253a4
mov dword [esp + 0x1c], 0x596c57a1
mov dword [esp + 0x20], 0x5d6b5b69
mov dword [esp + 0x24], 0x61aa5fa9
mov dword [esp + 0x28], 0x65816387
mov dword [esp + 0x2c], 0x6983678b
mov dword [esp + 0x30], 0x6d856b99
mov dword [esp + 0x34], 0x71996f83
mov dword [esp + 0x38], 0x7599739e
mov dword [esp + 0x3c], 0x798d7780
mov dword [esp + 0x40], 0x7d9f7b56
mov dword [esp + 0x44], 0x1917f8d
mov dword [esp + 0x48], 0x5f20331
mov dword [esp + 0x4c], 0x9f707f6
mov dword [esp + 0x50], 0xde10bee
mov dword [esp + 0x54], 0x11e90fe0
mov dword [esp + 0x58], 0x152313e5
mov dword [esp + 0x5c], 0x1920172d
mov dword [esp + 0x60], 0x1d2c1b2f
mov dword [esp + 0x64], 0x212d1f2f
mov dword [esp + 0x68], 0x2519231b
mov dword [esp + 0x6c], 0x2914271d
mov dword [esp + 0x70], 0x2d1f2b1c
mov dword [esp + 0x74], 0x311d2f19
mov dword [esp + 0x78], 0x3502330b
mov dword [esp + 0x7c], 0x39363704
mov byte [esp + 0x82], 0
mov word [esp + 0x80], 0
mov eax, 0xd
mov ebp, 0xf2
nop
movzx edi, byte [esp + eax + 7]
mov ebx, eax
and ebx, edi
mov edx, ebp
xor edx, edi
add edx, edi
sub edx, ebx
mov ebx, edi
not ebx
or ebx, ebp
add ebx, edi
mov ecx, 0xfe
sub ecx, ebx
and ecx, edx
mov dl, 0xbe
sub dl, cl
mov byte [esp + eax + 7], dl
inc eax
dec ebp
cmp eax, 0x7c
jne case.default.0x35e5e7
lea eax, [esp + 0x10]
lea ecx, [esp + 8]
push eax
push ecx
push esi
call fcn.0035f190
add esp, 0xc
movzx eax, al
jmp dword [eax*4 + 0x3999f4]
movzx ecx, byte [esp]
jmp 0x35e976
jmp 0x35e976
jmp dword [0x399a00]
mov dword [esp + 0x14], 0x564676bc
mov dword [esp + 0x18], 0x474d9546
mov dword [esp + 0x1c], 0x8a417e51
mov dword [esp + 0x20], 0x47756cb2
mov dword [esp + 0x24], 0x64726845
mov dword [esp + 0x28], 0x4c4c7874
mov dword [esp + 0x2c], 0x7c7f7373
mov dword [esp + 0x30], 0x666f7c6e
mov dword [esp + 0x34], 0xd69ba6
mov eax, 0x56
nop
movzx ecx, byte [esp + eax - 0x42]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x52
mov byte [esp + eax - 0x42], cl
inc eax
cmp eax, 0x7a
jne 0x35e650
mov dword [esp + 0x14], 0x564676bc
mov dword [esp + 0x18], 0x474d9546
mov dword [esp + 0x1c], 0x8a417e51
mov dword [esp + 0x20], 0x47756cb2
mov dword [esp + 0x24], 0x64726845
mov dword [esp + 0x28], 0x4c4c7874
mov dword [esp + 0x2c], 0x7c7f7373
mov dword [esp + 0x30], 0x666f7c6e
mov dword [esp + 0x34], 0xd69ba6
mov eax, 0x56
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x42]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x52
mov byte [esp + eax - 0x42], cl
inc eax
cmp eax, 0x7a
jne 0x35e6c0
mov eax, dword [esp + 8]
movzx edx, byte [esp + 0x14]
test dl, dl
je 0x35e720
mov ecx, esi
mov edi, eax
jmp 0x35e707
movzx edx, byte [ecx]
test dl, dl
je 0x35e730
mov dh, byte [eax]
test dh, dh
je 0x35e728
inc eax
inc ecx
lea ebx, [edi + 1]
cmp dh, dl
je 0x35e71a
mov edi, ebx
mov eax, ebx
je 0x35e700
mov ecx, esi
jmp 0x35e700
mov edi, eax
jmp dword [0x399a04]
xor edi, edi
jmp dword [0x399a04]
jmp dword [0x399a04]
mov eax, dword [case.0x35e5e7.7]
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x399a1c]
mov dword [esp + 0x14], 0x515b1600
mov dword [esp + 0x18], 0xcd045563
mov word [esp + 0x1c], 0
mov eax, 0xe3be6931
mov ecx, 0xce
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x1c4196e3]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
mov esi, 2
sub esi, edx
sub esi, edx
not esi
and esi, 2
mov ebx, 1
sub ebx, edx
and ebx, 1
and edx, 0xfe
or edx, ebx
add edx, esi
add dl, 0xa
mov byte [esp + eax + 0x1c4196e3], dl
inc eax
dec ecx
cmp eax, 0xe3be693b
jne 0x35e780
movzx ebx, byte [esp + 0x14]
mov eax, edi
test bl, bl
je 0x35e802
lea ecx, [esp + 0x14]
mov edx, ecx
mov esi, edi
mov eax, edi
jmp 0x35e7e7
movzx ebx, byte [edx]
test bl, bl
je 0x35e802
mov bh, byte [esi]
test bh, bh
je 0x35e800
inc esi
inc edx
lea ebp, [eax + 1]
cmp bh, bl
je 0x35e7fa
mov eax, ebp
mov esi, ebp
je 0x35e7e0
mov edx, ecx
jmp 0x35e7e0
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x399a24]
mov byte [eax], 0
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
cmp byte [edi + ecx + 0x23], 0
lea ecx, [ecx + 1]
jne 0x35e820
mov ebp, dword [case.0x35e5e7.16]
xor edx, edx
mov esi, dword [case.0x35e5e7.38]
mov dword [esp + 0xc], ecx
jmp case.0x35e5e7.13
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
mov byte [esp + edx + 0x114], al
inc edx
nop
jmp ebp
xor eax, eax
cmp edx, ecx
setb al
jmp dword [eax*4 + 0x399a3c]
mov dword [esp], edx
movzx eax, byte [edi + edx + 0x22]
movsx ecx, al
mov edx, eax
add dl, 0x9f
xor ebx, ebx
cmp dl, 0x1a
setb bl
jmp dword [ebx*4 + 0x399a7c]
add ecx, 0xffffffae
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp esi
mov edx, 0x4ec4ec4f
mov eax, ecx
imul edx
mov eax, edx
shr eax, 0x1f
shr edx, 3
add edx, eax
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
add eax, edx
sub ecx, eax
add cl, 0x61
mov eax, ecx
jmp case.0x35e5e7.33
mov byte [esp + ecx + 0x114], 0
lea eax, [esp + 0x114]
lea esi, [esp + 0x14]
push 0
push eax
push 0x40
push esi
call fcn.0035e990
add esp, 0x10
jmp dword [0x399a58]
push esi
call fcn.0035ec20
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.0035ec20
add esp, 4
jmp dword [0x399a60]
movzx eax, al
jmp dword [eax*4 + 0x399a64]
movzx ecx, word [esp + 0x14]
mov eax, 0x39f060
test cx, cx
je 0x35e931
lea edx, [esp + 0x16]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x35e920
mov word [eax], 0
mov al, 1
mov dword [esp + 4], eax
mov eax, dword [case.0x35e5e7.11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x35e5e7.9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
push dword [esp + 8]
call fcn.0038e210
add esp, 4
mov eax, dword [esp + 4]
and al, 1
mov ecx, eax
test cl, cl
setne al
add esp, 0x194
pop esi
pop edi
pop ebx
pop ebp
ret
int3
jmp dword [0x399abc]
mov edi, dword [0x39f02c]
jmp dword [0x399ac4]
mov edi, dword [0x39f02c]
jmp dword [0x399ac4]
jmp dword [0x399acc]
mov dword [esi + 0x20], 0x23bd215d
mov dword [esi + 0x24], 0x27bf25ae
mov dword [esi + 0x28], 0x5bc659c4
mov dword [esi + 0x2c], 0x5f015d3d
mov dword [esi + 0x30], 0x530c5105
mov dword [esi + 0x34], 0x57765504
mov dword [esi + 0x38], 0x4b3d4910
mov dword [esi + 0x3c], 0x4fd04dd5
mov dword [esi + 0x40], 0x43dd4124
mov dword [esi + 0x44], 0x47d545d3
mov dword [esi + 0x48], 0x7b047958
mov dword [esi + 0x4c], 0x7f5e7d08
mov dword [esi + 0x50], 0x73227121
mov dword [esi + 0x54], 0x7726752a
mov dword [esi + 0x58], 0x6b4a6923
mov dword [esi + 0x5c], 0x6ff76d1b
mov dword [esi + 0x60], 0x633461fe
mov dword [esi + 0x64], 0x672d6530
mov dword [esi + 0x68], 0x9b1299b8
mov dword [esi + 0x6c], 0x9fca9dca
mov dword [esi + 0x70], 0x93b291c9
mov dword [esi + 0x74], 0x970695d5
mov dword [esi + 0x78], 0x8b168918
mov dword [esi + 0x7c], 0x8ff98de9
mov dword [esi + 0x80], 0x83e081e5
mov dword [esi + 0x84], 0x871f85ff
mov dword [esi + 0x88], 0xbbe5b92c
mov dword [esi + 0x8c], 0xbfedbde9
mov dword [esi + 0x90], 0xb3ecb1e7
mov dword [esi + 0x94], 0xb7e0b5e7
mov dword [esi + 0x98], 0xabf2a988
mov dword [esi + 0x9c], 0xafd6add7
mov dword [esi + 0xa0], 0xa3dfa1d4
mov dword [esi + 0xa4], 0xa7faa5d8
mov dword [esi + 0xa8], 0xdb46d9f8
mov dword [esi + 0xac], 0xdf45dd45
mov dword [esi + 0xb0], 0xd3f2d1b5
mov dword [esi + 0xb4], 0xd7b3d593
mov dword [esi + 0xb8], 0xcb51c9ab
mov dword [esi + 0xbc], 0xcf97cd53
mov dword [esi + 0xc0], 0xc381c1e0
mov dword [esi + 0xc4], 0xc754c55c
mov dword [esi + 0xc8], 0xfb67f967
mov dword [esi + 0xcc], 0xffa1fd99
mov dword [esi + 0xd0], 0xf3a3f1a1
mov dword [esi + 0xd4], 0xf7a8f5bd
mov dword [esi + 0xd8], 0xebb4e9b8
mov dword [esi + 0xdc], 0xefb0edbc
mov dword [esi + 0xe0], 0xe3c2e1b0
mov dword [esi + 0xe4], 0xe787e597
mov dword [esi + 0xe8], 0x1b7b197e
mov dword [esi + 0xec], 0x1f871d8e
mov dword [esi + 0xf0], 0x1347114f
mov dword [esi + 0xf4], 0x17411547
mov dword [esi + 0xf8], 0xb590956
mov dword [esi + 0xfc], 0xf0e0d5a
mov byte [esi + 0x102], 0
mov word [esi + 0x100], 0
mov eax, 0x2c712cb8
mov ecx, 0x47
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esi + eax - 0x2c712c98]
mov edx, ecx
xor edx, eax
and edx, ebx
xor edx, eax
mov ebx, edx
not ebx
add edx, 0x67
and ebx, 1
or edx, 1
add edx, ebx
mov byte [esi + eax - 0x2c712c98], dl
inc eax
dec ecx
cmp eax, 0x2c712d9b
jne 0x35f4c0
lea eax, [esi + 0x20]
push 0
push 0
push 0
push 0
push eax
call edi
nop
nop
nop
mov dword [esi + 0x20], 0x23bd215d
mov dword [esi + 0x24], 0x27bf25ae
mov dword [esi + 0x28], 0x5bc659c4
mov dword [esi + 0x2c], 0x5f015d3d
mov dword [esi + 0x30], 0x530c5105
mov dword [esi + 0x34], 0x57765504
mov dword [esi + 0x38], 0x4b3d4910
mov dword [esi + 0x3c], 0x4fd04dd5
mov dword [esi + 0x40], 0x43dd4124
mov dword [esi + 0x44], 0x47d545d3
mov dword [esi + 0x48], 0x7b047958
mov dword [esi + 0x4c], 0x7f5e7d08
mov dword [esi + 0x50], 0x73227121
mov dword [esi + 0x54], 0x7726752a
mov dword [esi + 0x58], 0x6b4a6923
mov dword [esi + 0x5c], 0x6ff76d1b
mov dword [esi + 0x60], 0x633461fe
mov dword [esi + 0x64], 0x672d6530
mov dword [esi + 0x68], 0x9b1299b8
mov dword [esi + 0x6c], 0x9fca9dca
mov dword [esi + 0x70], 0x93b291c9
mov dword [esi + 0x74], 0x970695d5
mov dword [esi + 0x78], 0x8b168918
mov dword [esi + 0x7c], 0x8ff98de9
mov dword [esi + 0x80], 0x83e081e5
mov dword [esi + 0x84], 0x871f85ff
mov dword [esi + 0x88], 0xbbe5b92c
mov dword [esi + 0x8c], 0xbfedbde9
mov dword [esi + 0x90], 0xb3ecb1e7
mov dword [esi + 0x94], 0xb7e0b5e7
mov dword [esi + 0x98], 0xabf2a988
mov dword [esi + 0x9c], 0xafd6add7
mov dword [esi + 0xa0], 0xa3dfa1d4
mov dword [esi + 0xa4], 0xa7faa5d8
mov dword [esi + 0xa8], 0xdb46d9f8
mov dword [esi + 0xac], 0xdf45dd45
mov dword [esi + 0xb0], 0xd3f2d1b5
mov dword [esi + 0xb4], 0xd7b3d593
mov dword [esi + 0xb8], 0xcb51c9ab
mov dword [esi + 0xbc], 0xcf97cd53
mov dword [esi + 0xc0], 0xc381c1e0
mov dword [esi + 0xc4], 0xc754c55c
mov dword [esi + 0xc8], 0xfb67f967
mov dword [esi + 0xcc], 0xffa1fd99
mov dword [esi + 0xd0], 0xf3a3f1a1
mov dword [esi + 0xd4], 0xf7a8f5bd
mov dword [esi + 0xd8], 0xebb4e9b8
mov dword [esi + 0xdc], 0xefb0edbc
mov dword [esi + 0xe0], 0xe3c2e1b0
mov dword [esi + 0xe4], 0xe787e597
mov dword [esi + 0xe8], 0x1b7b197e
mov dword [esi + 0xec], 0x1f871d8e
mov dword [esi + 0xf0], 0x1347114f
mov dword [esi + 0xf4], 0x17411547
mov dword [esi + 0xf8], 0xb590956
mov dword [esi + 0xfc], 0xf0e0d5a
mov byte [esi + 0x102], 0
mov word [esi + 0x100], 0
mov eax, 0x2c712cb8
mov ecx, 0x47
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esi + eax - 0x2c712c98]
mov edx, ecx
xor edx, eax
and edx, ebx
xor edx, eax
mov ebx, edx
not ebx
add edx, 0x67
and ebx, 1
or edx, 1
add edx, ebx
mov byte [esi + eax - 0x2c712c98], dl
inc eax
dec ecx
cmp eax, 0x2c712d9b
jne 0x35f710
lea eax, [esi + 0x20]
push 0
push 0
push 0
push 0
push eax
call edi
jmp dword [0x399ad4]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x399adc]
xor edi, edi
xor ebx, ebx
jmp 0x35fa41
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x118]
mov dword [esi + 0xc], eax
lea ebx, [eax + eax]
mov edi, dword [case.0x35e5e7.61]
lea ecx, [ebx + 3]
and ecx, 0xfffffffc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
call fcn.0035c7e0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
jmp edi
mov edi, dword [esi + 0x114]
mov ecx, ebx
shr ecx, 2
and ebx, 0xfffffffc
lea edx, [eax + ebx]
mov dword [esi + 0x14], edx
add ebx, edi
mov edx, edi
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, dword [esi + 0xc]
and ecx, 1
mov edi, dword [esi + 0x14]
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, dword [esi + 0x118]
mov word [eax + ecx*2], 0
movzx ecx, word [esi + 0x11c]
push 0
push ecx
push eax
push dword [esi + 0x1c]
call dword [fcn.0039f030]
xor ecx, ecx
mov dword [esi + 0x14], eax
test eax, eax
setne cl
jmp dword [ecx*4 + 0x399af4]
xor ebx, ebx
xor edi, edi
jmp 0x35fa38
xor eax, eax
cmp dword [esi + 0x110], 2
sete al
jmp dword [eax*4 + 0x399afc]
mov dword [esi + 0xc], 0
jmp 0x35f873
mov dword [esi + 0x10], 0xf18e0f0c
mov eax, 0xc19b67fd
mov ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esi + eax + 0x3e649813]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
mov edi, edx
and edi, 1
or edx, 1
add edx, edi
add dl, 0xe
mov byte [esi + eax + 0x3e649813], dl
inc eax
dec ecx
cmp eax, 0xc19b6801
jne 0x35f840
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], eax
mov eax, dword [0x39f034]
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x130]
mov dword [esi + 0x20], 0xf3bff1bf
mov dword [esi + 0x24], 0xfffefda0
mov word [esi + 0x28], 0
mov byte [esi + 0x2a], 0
xor edi, edi
xor ebx, ebx
nop
nop
nop
mov ecx, ebx
xor ecx, 0x2c
mov eax, edi
and eax, 6
sub eax, ecx
xor al, byte [esi + ebx + 0x20]
add al, 0xdc
mov byte [esi + ebx + 0x20], al
inc ebx
add edi, 2
cmp ebx, 0xb
jne case.default.0x35f8de
push dword [esi + 0xc]
push 0
push 0
push 0
push edx
lea eax, [esi + 0x20]
push eax
push dword [esi + 0x14]
call dword [esi + 0x18]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
xor edi, edi
jmp dword [ecx*4 + 0x399b04]
mov ebx, eax
jmp dword [0x399b10]
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
call dword [fcn.0039f044]
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
call dword [fcn.0039f044]
jmp dword [0x399b14]
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
mov dword [esi + 0xc], ebx
jmp dword [ecx*4 + 0x399b1c]
push 0
push ebx
call dword [fcn.0039f048]
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
jmp dword [ecx*4 + 0x399b24]
mov ebx, edi
jmp dword [0x399b64]
mov dword [esi + 0x20], 0
xor edi, edi
xor ebx, ebx
jmp dword [0x399b2c]
lea eax, [esi + 0x20]
push eax
push dword [esi + 0xc]
call dword [fcn.0039f04c]
jmp dword [0x399b34]
mov ecx, dword [esi + 0x20]
test eax, eax
setne al
test ecx, ecx
setne dl
and dl, al
movzx eax, dl
jmp dword [eax*4 + 0x399b3c]
lea eax, [ebx + ecx]
inc eax
push eax
push edi
call fcn.00390e00
add esp, 8
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x399b44]
mov edi, eax
mov dword [esi + 0x10], 0
mov eax, dword [0x39f050]
mov ecx, dword [esi + 0x20]
mov edx, dword [case.0x35e5e7.88]
nop
jmp edx
mov edx, edi
mov dword [esi + 0x18], edi
add edx, ebx
lea edi, [esi + 0x10]
push edi
push ecx
push edx
push dword [esi + 0xc]
call eax
mov eax, dword [esi + 0x10]
mov ecx, eax
and ecx, ebx
xor eax, ebx
lea ebx, [eax + ecx*2]
xor eax, eax
mov edi, dword [esi + 0x18]
jmp dword [eax*4 + 0x399b5c]
mov eax, 1
jmp dword [eax*4 + 0x399b5c]
jmp dword [0x399b2c]
lea eax, [esi + 0x20]
push eax
push dword [esi + 0xc]
call dword [fcn.0039f04c]
jmp case.0x35f8de.9
jmp dword [0x399b64]
push dword [esi + 0xc]
call dword [fcn.0039f058]
nop
push dword [esi + 0xc]
call dword [fcn.0039f058]
jmp dword [0x399b6c]
push dword [esi + 0x14]
call dword [fcn.0039f058]
push dword [esi + 0x1c]
call dword [fcn.0039f058]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ecx], edi
mov dword [eax], ebx
jmp dword [0x399b7c]
test edi, edi
setne al
push eax
sub esp, 0xdc
mov eax, esp
mov ecx, dword [0x39f02c]
mov dword [eax], 0xb11f8fc3
mov dword [eax + 4], 0xb5d9b32a
mov dword [eax + 8], 0xb9dab7d8
mov dword [eax + 0xc], 0xbdebbbdb
mov dword [eax + 0x10], 0xa190bfeb
mov dword [eax + 0x14], 0xa582a3f0
mov dword [eax + 0x18], 0xa9dfa78c
mov dword [eax + 0x1c], 0xadc4abc3
mov dword [eax + 0x20], 0xd13fafc8
mov dword [eax + 0x24], 0xd547d349
mov dword [eax + 0x28], 0xd998d7f4
mov dword [eax + 0x2c], 0xddfadbac
mov dword [eax + 0x30], 0xc18edf8f
mov dword [eax + 0x34], 0xc592c3ee
mov dword [eax + 0x38], 0xc9e6c799
mov dword [eax + 0x3c], 0xcda1cbb1
mov dword [eax + 0x40], 0xf198cfa2
mov dword [eax + 0x44], 0xf5aff3a4
mov dword [eax + 0x48], 0xf96ef7d4
mov dword [eax + 0x4c], 0xfdaefbae
mov dword [eax + 0x50], 0xe1deffd7
mov dword [eax + 0x54], 0xe572e3a3
mov dword [eax + 0x58], 0xe98ae774
mov dword [eax + 0x5c], 0xed93eb8f
mov dword [eax + 0x60], 0x118cef8b
mov dword [eax + 0x64], 0x1579135d
mov dword [eax + 0x68], 0x19471780
mov dword [eax + 0x6c], 0x1d4f1b4f
mov dword [eax + 0x70], 0x1301f45
mov dword [eax + 0x74], 0x5540355
mov dword [eax + 0x78], 0x92e0724
mov dword [eax + 0x7c], 0xd420b45
mov dword [eax + 0x80], 0x31410f78
mov dword [eax + 0x84], 0x351e337c
mov dword [eax + 0x88], 0x395a3714
mov dword [eax + 0x8c], 0x3d573b53
mov dword [eax + 0x90], 0x211e3f5b
mov dword [eax + 0x94], 0x25452369
mov dword [eax + 0x98], 0x294b2741
mov dword [eax + 0x9c], 0x2d012bb9
mov dword [eax + 0xa0], 0x516b2f0c
mov dword [eax + 0xa4], 0x55c05338
mov dword [eax + 0xa8], 0x593957c5
mov dword [eax + 0xac], 0x5d0b5b3f
mov dword [eax + 0xb0], 0x410d5f0f
mov dword [eax + 0xb4], 0x456c431b
mov dword [eax + 0xb8], 0x49684714
mov dword [eax + 0xbc], 0x4d644b18
mov dword [eax + 0xc0], 0x716e4f1c
mov dword [eax + 0xc4], 0x75117305
mov dword [eax + 0xc8], 0x79157712
mov dword [eax + 0xcc], 0x7d117bea
mov dword [eax + 0xd0], 0x61297f2d
mov dword [eax + 0xd4], 0x653b6335
mov dword [eax + 0xd8], 0x6933674a
mov dword [eax + 0xdc], 0x6d6a6b3e
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0x9d
xor bl, byte [eax + edx]
add bl, 0xef
mov byte [eax + edx], bl
inc edx
cmp edx, 0xe0
jne 0x35fc80
push 0
push 0
push 0
push 0
push eax
call ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push eax
sub esp, 0xdc
mov eax, esp
sub esp, 8
mov edi, esp
sub esp, 8
mov dword [ebp - 0x18], esp
sub esp, 0x10
mov dword [ebp - 0x14], esp
sub esp, 0x400
mov dword [ebp - 0x24], esp
sub esp, 0x30
mov dword [ebp - 0x2c], esp
push eax
mov dword [ebp - 0x1c], esp
push eax
mov dword [ebp - 0x28], esp
mov ecx, dword [0x39f02c]
mov dword [eax], 0xb11f8fc3
mov dword [eax + 4], 0xb5d9b32a
mov dword [eax + 8], 0xb9dab7d8
mov dword [eax + 0xc], 0xbdebbbdb
mov dword [eax + 0x10], 0xa190bfeb
mov dword [eax + 0x14], 0xa582a3f0
mov dword [eax + 0x18], 0xa9dfa78c
mov dword [eax + 0x1c], 0xadc4abc3
mov dword [eax + 0x20], 0xd13fafc8
mov dword [eax + 0x24], 0xd547d349
mov dword [eax + 0x28], 0xd998d7f4
mov dword [eax + 0x2c], 0xddfadbac
mov dword [eax + 0x30], 0xc18edf8f
mov dword [eax + 0x34], 0xc592c3ee
mov dword [eax + 0x38], 0xc9e6c799
mov dword [eax + 0x3c], 0xcda1cbb1
mov dword [eax + 0x40], 0xf198cfa2
mov dword [eax + 0x44], 0xf5aff3a4
mov dword [eax + 0x48], 0xf96ef7d4
mov dword [eax + 0x4c], 0xfdaefbae
mov dword [eax + 0x50], 0xe1deffd7
mov dword [eax + 0x54], 0xe572e3a3
mov dword [eax + 0x58], 0xe98ae774
mov dword [eax + 0x5c], 0xed93eb8f
mov dword [eax + 0x60], 0x118cef8b
mov dword [eax + 0x64], 0x1579135d
mov dword [eax + 0x68], 0x19471780
mov dword [eax + 0x6c], 0x1d4f1b4f
mov dword [eax + 0x70], 0x1301f45
mov dword [eax + 0x74], 0x5540355
mov dword [eax + 0x78], 0x92e0724
mov dword [eax + 0x7c], 0xd420b45
mov dword [eax + 0x80], 0x31410f78
mov dword [eax + 0x84], 0x351e337c
mov dword [eax + 0x88], 0x395a3714
mov dword [eax + 0x8c], 0x3d573b53
mov dword [eax + 0x90], 0x211e3f5b
mov dword [eax + 0x94], 0x25452369
mov dword [eax + 0x98], 0x294b2741
mov dword [eax + 0x9c], 0x2d012bb9
mov dword [eax + 0xa0], 0x516b2f0c
mov dword [eax + 0xa4], 0x55c05338
mov dword [eax + 0xa8], 0x593957c5
mov dword [eax + 0xac], 0x5d0b5b3f
mov dword [eax + 0xb0], 0x410d5f0f
mov dword [eax + 0xb4], 0x456c431b
mov dword [eax + 0xb8], 0x49684714
mov dword [eax + 0xbc], 0x4d644b18
mov dword [eax + 0xc0], 0x716e4f1c
mov dword [eax + 0xc4], 0x75117305
mov dword [eax + 0xc8], 0x79157712
mov dword [eax + 0xcc], 0x7d117bea
mov dword [eax + 0xd0], 0x61297f2d
mov dword [eax + 0xd4], 0x653b6335
mov dword [eax + 0xd8], 0x6933674a
mov dword [eax + 0xdc], 0x6d6a6b3e
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0x9d
xor bl, byte [eax + edx]
add bl, 0xef
mov byte [eax + edx], bl
inc edx
cmp edx, 0xe0
jne 0x35fec0
push 0
push 0
push 0
push 0
push eax
call ecx
jmp dword [0x399b8c]
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp - 0x10], 0
xor ebx, ebx
jmp dword [ecx*4 + 0x399b94]
mov dword [ebp - 0x20], eax
mov eax, dword [fcn.0039f030]
mov dword [ebp - 0x10], eax
mov dword [edi], 0x1312105b
mov dword [edi + 4], 0
xor ecx, ecx
xor esi, esi
nop
nop
nop
nop
nop
movzx eax, byte [edi + esi]
mov ebx, ecx
and ebx, 8
mov edx, esi
xor edx, 0xb5f0267c
add edx, ebx
xor edx, eax
lea eax, [edx + 0x724f3f93]
mov ebx, 0x6c
sub ebx, edx
mov edx, eax
not edx
or ebx, edx
and eax, 1
not ebx
or ebx, 1
add ebx, eax
mov byte [edi + esi], bl
inc esi
add ecx, 2
cmp esi, 8
jne case.default.0x35ff77
movzx eax, word [edi]
push 0
push eax
push dword [ebp + 8]
mov edi, dword [ebp - 0x20]
push edi
call dword [ebp - 0x10]
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x399b9c]
xor ebx, ebx
mov dword [ebp - 0x10], 0
mov esi, dword [ebp + 0x20]
jmp dword [0x399c34]
mov eax, dword [0x39f034]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x18]
mov dword [ecx], 0xf7760908
mov word [ecx + 4], 0
mov byte [ecx + 6], 0
mov eax, 0x4320d82e
movzx edi, byte [ecx + eax - 0x4320d82e]
lea edx, [eax - 0x4320d7b0]
and edx, edi
mov ebx, edx
and ebx, 0xfffffffd
mov ecx, edx
or ecx, 0xfffffffd
inc ecx
imul ecx, ebx
mov ebx, edx
and ebx, 2
or edx, 2
imul edx, ebx
add ecx, edi
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 0x59
xor ecx, 0xa50741d9
lea edx, [ecx + edx*2]
and ecx, 1
or edx, 1
add edx, ecx
mov ecx, dword [ebp - 0x18]
mov byte [ecx + eax - 0x4320d82e], dl
inc eax
cmp eax, 0x4320d835
jne 0x35ffb0
mov eax, dword [ecx]
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x14]
mov dword [ebx], 0x93259120
mov dword [ebx + 4], 0x9f229d2f
mov word [ebx + 8], 0x9998
mov dword [ebx + 0xa], 0
mov word [ebx + 0xe], 0
xor eax, eax
jmp dword [0x399ba4]
mov edi, esi
jmp 0x3603fa
mov dword [ebp - 0x18], esi
mov edi, dword [ebp + 0x18]
mov esi, dword [ebp + 0x10]
jmp dword [0x399bc4]
xor eax, eax
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
setne al
jmp dword [eax*4 + 0x399c44]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x399bb4]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x10], 0
xor ebx, ebx
mov esi, dword [ebp + 0x20]
mov edi, dword [ebp - 0x20]
jmp 0x3603a5
movzx eax, byte [0x39f164]
jmp dword [eax*4 + 0x399bbc]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edx
mov ebx, dword [ebp - 0x2c]
mov dword [ebx], 0xff6df93f
mov dword [ebx + 4], 0xe30dfd6f
mov dword [ebx + 8], 0xe703e109
mov dword [ebx + 0xc], 0xebcae53a
mov dword [ebx + 0x10], 0xef0de90b
mov dword [ebx + 0x14], 0x9378ed0b
mov dword [ebx + 0x18], 0x977b9173
mov dword [ebx + 0x1c], 0x9b79950f
mov dword [ebx + 0x20], 0x9f07997e
mov dword [ebx + 0x24], 0x835f9d0c
mov word [ebx + 0x28], 0x8180
mov dword [ebx + 0x2a], 0
mov word [ebx + 0x2e], 0
mov edx, 0x6b301caa
mov edi, dword [ebp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [ebx + edx - 0x6b301caa]
mov ebx, esi
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, esi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
mov ebx, dword [ebp - 0x2c]
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0xae
mov byte [ebx + edx - 0x6b301caa], al
inc edx
cmp edx, 0x6b301cda
jne 0x360150
movzx ecx, word [ebx]
mov edx, dword [ebp - 0x24]
mov eax, edx
test cx, cx
je 0x3601c1
add ebx, 2
mov eax, edx
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x3601b0
mov word [eax], 0
movzx ecx, word [0x39f166]
test cx, cx
je 0x3601f8
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edx + 0x39f168]
add edx, 2
test cx, cx
jne 0x3601e0
add eax, edx
mov edx, dword [ebp - 0x24]
mov word [eax], 0
push 0x20000000
push 0xffffffffffffffff
push edx
mov esi, dword [ebp - 0x14]
push esi
call dword [fcn.0039f040]
mov edx, esi
mov esi, dword [ebp + 0x10]
jmp dword [0x399bc4]
xor eax, eax
mov ecx, esi
neg ecx
sbb eax, eax
push 0
push edi
push edi
push dword [ebp + 0x14]
push eax
push esi
push edx
mov ebx, edx
call dword [fcn.0039f044]
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, esi
neg eax
mov eax, 0
sbb eax, eax
push 0
push edi
push edi
push dword [ebp + 0x14]
push eax
push esi
push edx
mov ebx, edx
call dword [fcn.0039f044]
mov edx, ebx
jmp dword [0x399bcc]
mov dword [ebp - 0x14], 0
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
mov esi, dword [ebp + 0x20]
jmp dword [ecx*4 + 0x399bd4]
push 0
push edx
call dword [fcn.0039f048]
mov edx, ebx
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
mov dword [ebp - 0x14], 0
jmp dword [ecx*4 + 0x399bec]
mov dword [ebp - 0x10], edi
push edx
call dword [fcn.0039f058]
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x14]
push dword [ebp - 0x18]
call dword [fcn.0039f058]
jmp dword [0x399c34]
movzx edx, byte [ebx + eax]
mov edi, 0x5b
sub edi, eax
lea ecx, [eax + 0xa4]
xor ecx, edi
and ecx, edx
xor ecx, edi
mov ebx, dword [ebp - 0x14]
mov dl, 0xcb
sub dl, cl
mov byte [ebx + eax], dl
inc eax
cmp eax, 0x10
jne case.0x35ff77.2
push dword [ebp - 0x18]
push 0
push 0
push 0
push dword [ebp + 0xc]
push ebx
mov edi, esi
push esi
call dword [ebp - 0x10]
xor eax, eax
mov ebx, dword [ebp - 0x14]
movzx edx, byte [ebx + eax]
mov esi, 0x5b
sub esi, eax
lea ecx, [eax + 0xa4]
xor ecx, esi
and ecx, edx
xor ecx, esi
mov dl, 0xcb
sub dl, cl
mov byte [ebx + eax], dl
inc eax
cmp eax, 0x10
jne 0x3603fc
push dword [ebp - 0x18]
push 0
push 0
push 0
push dword [ebp + 0xc]
push ebx
mov esi, edi
push edi
call dword [ebp - 0x10]
mov edx, eax
xor eax, eax
jmp dword [0x399bac]
in eax, 0x35
add ah, bh
in eax, 0x35
add byte [edx], al
out 0x35, al
add byte [edi - 0x1a], ch
xor eax, 0x35e73600
add byte [edx], al
out 0x35, al
add byte [eax - 0x19], al
xor eax, 0x35e74000
add byte [edx - 0x19], al
xor eax, 0x35e74000
add byte [edx - 0x17], ah
xor eax, 0x35e75000
add byte [edx - 0x17], dl
xor eax, 0x35e81000
add byte [eax - 0x18], dl
xor eax, 0x35e85000
add byte [eax - 0x18], dl
xor eax, 0x35e85200
add byte [esi + 0x600035e8], dh
call fcn.003a9a7b
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
mov dh, 0xe8
xor eax, 904453376
add al, dh
call 0xe9299a93
xor eax, 0x35e8ff00
add byte [ecx + ebp*8], bh
xor eax, 0x35e90900
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [esi + 0x400035e9], al
call 0xe8b89ab7
xor eax, 0x35e89000
add byte [eax - 0x6fffca18], dl
call 0xe8cb9ac7
xor eax, 0x35e95000
add byte [eax - 0x17], dl
xor eax, 0x35e95200
add byte [eax - 0x17], dl
xor eax, 0x35e96000
add byte [eax - 0x17], ah
xor eax, 0x35e96200
add byte [eax - 0x17], ah
xor eax, 0x35f27800
add byte [edi - 0xe], bh
xor eax, 0x35f28500
add byte [eax - 0x53ffca0e], ah
xor eax, 0x35f2a000
add byte [eax], al
cmc
xor eax, 0x35f2b200
add byte [ebx - 9], dl
xor eax, 0x35f50000
add byte [ecx - 9], ah
xor eax, 0x35f76a00
add byte [eax - 0x6fffca09], dl
div dword [0x35f7a000]
add byte [eax + 0x10035f7], dl
clc
xor eax, 0x35f80a00
add byte [0x260035f8], bl
clc
xor eax, 0x35fa2f00
add ch, ah
clc
xor eax, 0x35f8ed00
add byte [eax], al
stc
xor eax, 0x35f91900
add byte [eax], al
stc
xor eax, 0x35f94500
add byte [ecx + edi*8], ch
xor eax, 0x35f94500
add byte [ebp - 7], cl
xor eax, 0x35f96000
add dh, bh
stc
xor eax, 0x35f97300
add dh, bh
stc
xor eax, 0x35fa1000
add byte [ecx + edi*8 - 0x657ffcb], cl
xor eax, 0x35f9ec00
add al, al
stc
xor eax, 0x35f9c000
add al, al
stc
xor eax, 0x35f9c200
add al, bh
stc
xor eax, 0x35fa1000
add byte [eax], ah
cli
xor eax, 0x35fa1600
add byte [edi], ch
cli
xor eax, 0x35fa2000
add byte [eax - 6], dl
xor eax, 0x35fa5000
add byte [edx - 6], bl
xor eax, 0x35fa5000
add byte [eax - 0x6dffca04], dh
cli
xor eax, 0x35fee800
add byte [eax + 0x4d0035fc], dh
add byte [esi], dh
add bh, bh
invalid