Function at 0x4271fa
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x158
mov eax, dword [ecx]
mov edi, dword [ecx + 4]
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x148], edi
test eax, eax
je 0x427d00
test byte [eax], 2
jne 0x427c80
mov esi, dword [ebp - 0x13c]
lea edi, [ebp - 0x118]
mov dword [ebp - 0x128], 0
lea ecx, [ebp - 0x128]
mov dword [ebp - 0x124], 0
mov edx, dword [esi + 0x14]
mov byte [ebp - 0x118], 0x89
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x144], edx
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x50
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x4e
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x47
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0xd
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0xa
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x1a
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0xa
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0xd
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x49
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x48
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x44
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x52
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
mov esi, dword [esi + 8]
sub esp, 4
mov ebx, 0x18
mov ecx, ebx
mov eax, esi
shr eax, cl
lea ecx, [ebp - 0x128]
mov byte [ebp - 0x118], al
mov dword [esp], edi
call fcn.00421f50
sub ebx, 8
sub esp, 4
cmp ebx, 0xfffffff8
jne 0x4273e4
mov edx, dword [ebp - 0x13c]
mov ebx, 0x18
mov esi, dword [edx + 0xc]
mov ecx, ebx
mov eax, esi
shr eax, cl
lea ecx, [ebp - 0x128]
mov byte [ebp - 0x118], al
mov dword [esp], edi
call fcn.00421f50
sub ebx, 8
sub esp, 4
cmp ebx, 0xfffffff8
jne 0x427417
mov byte [ebp - 0x118], 8
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 2
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
mov ebx, dword [ebp - 0x128]
sub esp, 4
call method.util.init_crc32_table__
movzx edx, byte [ebx + 0xc]
not edx
movzx esi, dl
mov ecx, dword [esi*4 + 0x653da0]
xor ecx, 0xffffff
mov eax, ecx
xor cl, byte [ebx + 0xd]
movzx edx, cl
shr eax, 8
xor eax, dword [edx*4 + 0x653da0]
mov ecx, eax
xor al, byte [ebx + 0xe]
movzx esi, al
shr ecx, 8
xor ecx, dword [esi*4 + 0x653da0]
mov eax, ecx
xor cl, byte [ebx + 0xf]
movzx edx, cl
shr eax, 8
xor eax, dword [edx*4 + 0x653da0]
mov ecx, eax
xor al, byte [ebx + 0x10]
movzx esi, al
shr ecx, 8
xor ecx, dword [esi*4 + 0x653da0]
mov eax, ecx
xor cl, byte [ebx + 0x11]
movzx edx, cl
shr eax, 8
xor eax, dword [edx*4 + 0x653da0]
mov ecx, eax
xor al, byte [ebx + 0x12]
movzx esi, al
shr ecx, 8
xor ecx, dword [esi*4 + 0x653da0]
mov eax, ecx
xor cl, byte [ebx + 0x13]
movzx edx, cl
shr eax, 8
xor eax, dword [edx*4 + 0x653da0]
mov ecx, eax
xor al, byte [ebx + 0x14]
movzx esi, al
shr ecx, 8
xor ecx, dword [esi*4 + 0x653da0]
mov eax, ecx
xor cl, byte [ebx + 0x15]
movzx edx, cl
shr eax, 8
xor eax, dword [edx*4 + 0x653da0]
mov ecx, eax
xor al, byte [ebx + 0x16]
movzx esi, al
shr ecx, 8
xor ecx, dword [esi*4 + 0x653da0]
mov eax, ecx
xor cl, byte [ebx + 0x17]
movzx edx, cl
shr eax, 8
xor eax, dword [edx*4 + 0x653da0]
mov ecx, eax
xor al, byte [ebx + 0x18]
movzx esi, al
shr ecx, 8
xor ecx, dword [esi*4 + 0x653da0]
mov eax, ecx
xor cl, byte [ebx + 0x19]
movzx edx, cl
shr eax, 8
xor eax, dword [edx*4 + 0x653da0]
mov ecx, eax
xor al, byte [ebx + 0x1a]
movzx esi, al
shr ecx, 8
xor ecx, dword [esi*4 + 0x653da0]
mov eax, ecx
xor cl, byte [ebx + 0x1b]
movzx edx, cl
shr eax, 8
xor eax, dword [edx*4 + 0x653da0]
mov esi, eax
xor al, byte [ebx + 0x1c]
movzx ebx, al
shr esi, 8
xor esi, dword [ebx*4 + 0x653da0]
mov ebx, 0x18
not esi
mov ecx, ebx
mov eax, esi
shr eax, cl
lea ecx, [ebp - 0x128]
mov byte [ebp - 0x118], al
mov dword [esp], edi
call fcn.00421f50
sub ebx, 8
sub esp, 4
cmp ebx, 0xfffffff8
jne 0x4275fc
mov edx, dword [ebp - 0x13c]
mov ebx, 0x18
mov esi, dword [edx + 8]
imul esi, dword [edx + 0xc]
lea esi, [esi + esi*2]
mov dword [ebp - 0x14c], esi
bswap esi
mov ecx, ebx
mov eax, esi
shr eax, cl
lea ecx, [ebp - 0x128]
mov byte [ebp - 0x118], al
mov dword [esp], edi
call fcn.00421f50
sub ebx, 8
sub esp, 4
cmp ebx, 0xfffffff8
jne 0x42763e
mov byte [ebp - 0x118], 0x49
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x44
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x41
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x54
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
mov edx, dword [ebp - 0x13c]
sub esp, 4
xor esi, esi
mov ebx, dword [edx + 0xc]
imul ebx, dword [edx + 8]
test ebx, ebx
jg 0x427731
jmp 0x4277f0
mov byte [eax], cl
add eax, 1
mov dword [ebp - 0x124], eax
cmp eax, edx
je 0x4277a0
mov byte [eax], bl
add eax, 1
mov dword [ebp - 0x124], eax
cmp eax, edx
je 0x4277d0
movzx ecx, byte [ebp - 0x140]
add eax, 1
mov byte [eax - 1], cl
mov dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x13c]
add esi, 1
mov eax, dword [edx + 8]
imul eax, dword [edx + 0xc]
cmp eax, esi
jle 0x4277f0
mov eax, dword [ebp - 0x144]
mov ebx, dword [eax + esi*4]
mov eax, dword [ebp - 0x124]
mov edx, ebx
mov ecx, ebx
mov byte [ebp - 0x118], bl
shr edx, 8
shr ecx, 0x10
mov dword [ebp - 0x140], edx
mov byte [ebp - 0x129], dl
mov edx, dword [ebp - 0x120]
mov byte [ebp - 0x12a], cl
cmp eax, edx
jne 0x4276e0
lea ecx, [ebp - 0x12a]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x128]
call method.void_std::vector_unsigned_char__std::allocator_unsigned_char___._M_realloc_insert_unsigned_char_const____gnu_cxx::__normal_iterator_unsigned_char__std::vector_unsigned_char__std::allocator_unsigned_char_______unsigned_char_const_
mov eax, dword [ebp - 0x124]
mov edx, dword [ebp - 0x120]
sub esp, 8
cmp eax, edx
jne 0x4276f3
nop
mov dword [esp + 4], edi
lea ecx, [ebp - 0x128]
mov dword [esp], eax
call method.void_std::vector_unsigned_char__std::allocator_unsigned_char___._M_realloc_insert_unsigned_char_const____gnu_cxx::__normal_iterator_unsigned_char__std::vector_unsigned_char__std::allocator_unsigned_char_______unsigned_char_const_
mov eax, dword [ebp - 0x124]
mov edx, dword [ebp - 0x120]
sub esp, 8
cmp eax, edx
jne 0x427706
lea esi, [esi]
lea ebx, [ebp - 0x129]
mov dword [esp], eax
lea ecx, [ebp - 0x128]
mov dword [esp + 4], ebx
call method.void_std::vector_unsigned_char__std::allocator_unsigned_char___._M_realloc_insert_unsigned_char_const____gnu_cxx::__normal_iterator_unsigned_char__std::vector_unsigned_char__std::allocator_unsigned_char_______unsigned_char_const_
sub esp, 8
jmp 0x427719
mov ebx, dword [ebp - 0x128]
mov dword [ebp - 0x140], ebx
lea esi, [ebx + 0x25]
mov ebx, 0xffffffff
call method.util.init_crc32_table__
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x140]
lea edx, [ecx + eax + 0x29]
cmp eax, 0xfffffffc
je 0x427cf0
mov eax, edx
sub eax, esi
and eax, 7
je 0x4278e1
cmp eax, 1
je 0x4278c3
cmp eax, 2
je 0x4278ad
cmp eax, 3
je 0x427897
cmp eax, 4
je 0x427881
cmp eax, 5
je 0x42786b
cmp eax, 6
jne 0x427ca8
mov ecx, ebx
xor bl, byte [esi]
add esi, 1
movzx eax, bl
shr ecx, 8
xor ecx, dword [eax*4 + 0x653da0]
mov ebx, ecx
mov ecx, ebx
xor bl, byte [esi]
add esi, 1
movzx ebx, bl
shr ecx, 8
xor ecx, dword [ebx*4 + 0x653da0]
mov ebx, ecx
mov eax, ebx
xor bl, byte [esi]
add esi, 1
movzx ecx, bl
shr eax, 8
xor eax, dword [ecx*4 + 0x653da0]
mov ebx, eax
mov eax, ebx
xor bl, byte [esi]
add esi, 1
movzx ebx, bl
shr eax, 8
xor eax, dword [ebx*4 + 0x653da0]
mov ebx, eax
mov ecx, ebx
xor bl, byte [esi]
add esi, 1
movzx eax, bl
shr ecx, 8
xor ecx, dword [eax*4 + 0x653da0]
mov ebx, ecx
mov ecx, ebx
xor bl, byte [esi]
add esi, 1
movzx ebx, bl
shr ecx, 8
xor ecx, dword [ebx*4 + 0x653da0]
mov ebx, ecx
cmp esi, edx
je 0x42797b
mov eax, ebx
xor bl, byte [esi]
add esi, 8
movzx ecx, bl
shr eax, 8
xor eax, dword [ecx*4 + 0x653da0]
mov ebx, eax
xor al, byte [esi - 7]
movzx eax, al
shr ebx, 8
xor ebx, dword [eax*4 + 0x653da0]
mov eax, ebx
xor bl, byte [esi - 6]
movzx ecx, bl
shr eax, 8
xor eax, dword [ecx*4 + 0x653da0]
mov ebx, eax
xor al, byte [esi - 5]
movzx eax, al
shr ebx, 8
xor ebx, dword [eax*4 + 0x653da0]
mov eax, ebx
xor bl, byte [esi - 4]
movzx ecx, bl
shr eax, 8
xor eax, dword [ecx*4 + 0x653da0]
mov ebx, eax
xor al, byte [esi - 3]
movzx eax, al
shr ebx, 8
xor ebx, dword [eax*4 + 0x653da0]
mov eax, ebx
xor bl, byte [esi - 2]
movzx ecx, bl
shr eax, 8
xor eax, dword [ecx*4 + 0x653da0]
mov ebx, eax
xor al, byte [esi - 1]
movzx eax, al
shr ebx, 8
xor ebx, dword [eax*4 + 0x653da0]
cmp esi, edx
jne 0x4278e1
not ebx
mov esi, 0x18
mov ecx, esi
mov edx, ebx
shr edx, cl
lea ecx, [ebp - 0x128]
mov byte [ebp - 0x118], dl
mov dword [esp], edi
call fcn.00421f50
sub esi, 8
sub esp, 4
cmp esi, 0xfffffff8
jne 0x427982
mov byte [ebp - 0x118], 0
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x49
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x45
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x4e
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x44
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0xae
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x42
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x60
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
sub esp, 4
mov byte [ebp - 0x118], 0x82
lea ecx, [ebp - 0x128]
mov dword [esp], edi
call fcn.00421f50
mov ebx, dword [ebp - 0x148]
sub esp, 4
lea ecx, [ebp - 0xac]
mov esi, dword [ebx]
call sym.std::ios_base::ios_base__
mov edx, dword [sym.imp.libstdc_6.dll_vtable_for___cxxabiv1::__class_type_info]
xor eax, eax
pxor xmm0, xmm0
mov word [ebp - 0x38], ax
mov ebx, dword [sym.imp.libstdc_6.dll_vtable_for___cxxabiv1::__si_class_type_info]
movups xmmword [ebp - 0x34], xmm0
mov ecx, dword [edx - 0xc]
mov dword [ebp - 0xac], sym.imp.libstdc_6.dll_operator_new_unsigned_int_
add ecx, edi
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x118], edx
mov dword [ecx], ebx
mov dword [esp], 0
call sym.std::basic_ios_char__std::char_traits_char___::init_std::basic_streambuf_char__std::char_traits_char____
mov dword [ebp - reloc.libstdc_6.dll__ZdlPvj], sym.imp.libstdc_6.dll_operator_delete_void__unsigned_int_
lea ebx, [ebp - 0x114]
sub esp, 4
mov dword [ebp - 0xac], sym.imp.libstdc_6.dll___cxa_free_exception
mov ecx, ebx
call sym.std::basic_filebuf_char__std::char_traits_char___::basic_filebuf__
mov dword [esp], ebx
lea ecx, [ebp - 0xac]
call sym.std::basic_ios_char__std::char_traits_char___::init_std::basic_streambuf_char__std::char_traits_char____
sub esp, 4
mov ecx, ebx
mov dword [esp + 4], 0x14
mov dword [esp], esi
call sym.std::basic_filebuf_char__std::char_traits_char___::open_char_const__std::_Ios_Openmode_
mov ecx, dword [ebp - 0x118]
sub esp, 8
mov ecx, dword [ecx - 0xc]
add ecx, edi
test eax, eax
je 0x427c90
mov dword [esp], 0
call sym.std::basic_ios_char__std::char_traits_char___::clear_std::_Ios_Iostate_
mov esi, dword [ebp - 0x128]
mov eax, dword [ebp - 0x124]
sub esp, 4
mov ecx, edi
sub eax, esi
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.std::ostream::write_char_const__int_
sub esp, 8
mov ecx, ebx
call sym.std::basic_filebuf_char__std::char_traits_char___::close__
test eax, eax
je 0x427cc8
mov ecx, dword [ebp - 0x13c]
test byte [ecx], 2
jne 0x427c70
mov edx, sym.imp.libstdc_6.dll_vtable_for_std::basic_ofstream_char__std::char_traits_char___
mov edi, sym.imp.libstdc_6.dll_operator_delete_void__unsigned_int_
mov ecx, ebx
mov dword [ebp - 0xac], sym.imp.libstdc_6.dll___cxa_free_exception
movd xmm2, edi
movd xmm1, edx
punpckldq xmm2, xmm1
movq qword [ebp - 0x118], xmm2
call sym.std::basic_filebuf_char__std::char_traits_char___::close__
lea ecx, [ebp - 0xf0]
call sym.std::__basic_file_char_::__basic_file__
lea ecx, [ebp - 0xf8]
mov dword [ebp - reloc.libstdc_6.dll__ZdlPvj], sym.imp.libstdc_6.dll_operator_delete_void__unsigned_int_
call fcn.005bdc98
mov ebx, dword [sym.imp.libstdc_6.dll_vtable_for___cxxabiv1::__class_type_info]
mov ecx, dword [sym.imp.libstdc_6.dll_vtable_for___cxxabiv1::__si_class_type_info]
mov eax, dword [ebx - 0xc]
mov dword [ebp - 0x118], ebx
mov dword [ebp + eax - 0x118], ecx
lea ecx, [ebp - 0xac]
mov dword [ebp - 0xac], sym.imp.libstdc_6.dll_operator_new_unsigned_int_
call fcn.005bdbc8
test esi, esi
je 0x427c5f
mov edx, dword [ebp - 0x120]
mov dword [esp], esi
sub edx, esi
mov dword [esp + 4], edx
call sym.operator_delete_void__unsigned_int_
mov eax, 1
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
mov dword [esp], ecx
call sym._SDL_UnlockSurface
jmp 0x427bc7
mov dword [esp], eax
call sym._SDL_LockSurface
jmp 0x427229
mov esi, dword [ecx + 0x14]
or esi, 4
mov dword [esp], esi
call sym.std::basic_ios_char__std::char_traits_char___::clear_std::_Ios_Iostate_
jmp 0x427b87
movzx ebx, byte [esi]
lea esi, [ecx + 0x26]
xor bl, 0xff
mov ebx, dword [ebx*4 + 0x653da0]
xor ebx, 0xffffff
jmp 0x427855
mov edx, dword [ebp - 0x118]
mov ecx, dword [edx - 0xc]
add ecx, edi
mov eax, dword [ecx + 0x14]
or eax, 4
mov dword [esp], eax
call sym.std::basic_ios_char__std::char_traits_char___::clear_std::_Ios_Iostate_
sub esp, 4
jmp 0x427bb8
xor ebx, ebx
jmp 0x42797d
mov dword [esp + 8], 0x1d
mov dword [esp + 4], str.GBE::Error___Source_data_for
mov dword [esp], sym.imp.libstdc_6.dll_std::cout
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
mov edi, dword [ebp - 0x148]
mov eax, dword [edi + 4]
mov dword [esp + 8], eax
mov ecx, dword [edi]
mov dword [esp], sym.imp.libstdc_6.dll_std::cout
mov dword [esp + 4], ecx
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
mov dword [esp + 8], 9
mov dword [esp + 4], str._is_null_n
mov dword [esp], eax
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
xor eax, eax
jmp 0x427c64