Function at 0x4b11ae
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov byte [0xa31cf0], 0
mov eax, dword [0x695b4c]
test eax, eax
je 0x4b11ce
mov byte [0xa31cf0], 1
mov eax, dword [0x6b5534]
cmp eax, 1
jne 0x4b11f3
mov dword [0x6b5534], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x695b4c]
test eax, eax
jne 0x4b1214
mov eax, dword [0x69ad84]
test eax, eax
je 0x4b1214
mov dword [0xa31240], 1
jmp 0x4b3133
mov eax, dword [0x6b5534]
test eax, eax
jne 0x4b30ef
mov dword [0xa31cf4], 0xffffffff
mov eax, dword [0x5390a0]
mov edx, dword [0x5390a4]
mov dword [0xa31cf8], eax
mov dword [0xa31cfc], edx
mov dword [0xa31d00], 0
jmp 0x4b12c0
mov eax, dword [0xa31d00]
shl eax, 5
add eax, 0x69ac20
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa31cf8]
mov edx, dword [0xa31cfc]
cmp ebx, edx
jg 0x4b12b3
cmp ebx, edx
jl 0x4b1277
cmp ecx, eax
jae 0x4b12b3
mov eax, dword [0xa31d00]
shl eax, 5
add eax, 0x69ac20
mov eax, dword [eax]
cmp eax, 3
jne 0x4b12b3
mov eax, dword [0xa31d00]
shl eax, 5
add eax, 0x69ac20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa31cf8], eax
mov dword [0xa31cfc], edx
mov eax, dword [0xa31d00]
mov dword [0xa31cf4], eax
mov eax, dword [0xa31d00]
add eax, 1
mov dword [0xa31d00], eax
mov eax, dword [0xa31d00]
cmp eax, 2
setle al
test al, al
jne 0x4b124d
mov dword [0xa31d00], 0
jmp 0x4b130a
mov eax, dword [0xa31d00]
shl eax, 5
add eax, 0x69ac20
mov eax, dword [eax]
cmp eax, 1
jne 0x4b12fd
mov eax, dword [0xa31d00]
mov dword [0xa31cf4], eax
mov eax, dword [0xa31d00]
add eax, 1
mov dword [0xa31d00], eax
mov eax, dword [0xa31d00]
cmp eax, 2
setle al
test al, al
jne 0x4b12df
mov eax, dword [0xa31cf4]
cmp eax, 0xffffffff
jne 0x4b1334
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.004579b7
jmp 0x4b3133
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac20
mov dword [eax], 2
mov ecx, dword [0xa31cf4]
mov eax, dword [0x5390a0]
mov edx, dword [0x5390a4]
shl ecx, 5
add ecx, 0x69ac20
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add eax, 1
adc edx, 0
mov dword [0x5390a0], eax
mov dword [0x5390a4], edx
mov eax, dword [0x695b4c]
test eax, eax
je 0x4b13c9
mov dword [esp + 8], 1
fld qword [0x568bc8]
fstp qword [esp]
call fcn.0047913e
fstp qword [0xa31d08]
fld qword [0xa31d10]
fld qword [0xa31d08]
fsubp st(1)
fabs
fld qword [0x568d50]
fucompi st(1)
fstp st(0)
ja 0x4b308e
fld qword [0xa31d08]
fstp qword [0xa31d10]
mov eax, dword [0x6ab774]
test eax, eax
je 0x4b3091
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa31d18], eax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa31d1c], eax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4b1458
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x69ad94]
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa31d18], eax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x69ad90]
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa31d1c], eax
mov eax, dword [0xa31d18]
cmp eax, 0x200
jg 0x4b1488
mov eax, dword [0xa31d1c]
cmp eax, 0x180
jg 0x4b1488
mov eax, dword [0xa31d18]
add eax, eax
mov dword [0xa31d18], eax
mov eax, dword [0xa31d1c]
add eax, eax
mov dword [0xa31d1c], eax
mov dword [0xa31d20], 0xffffffff
mov dword [0xa31d24], 0xffffffff
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa31d18], eax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa31d1c], eax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4b151e
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x69ad94]
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa31d18], eax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x69ad90]
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa31d1c], eax
mov eax, dword [0xa31d18]
mov dword [0x6ab794], eax
mov eax, dword [0xa31d1c]
mov dword [0x6ab798], eax
mov dword [0xa31d28], 0
mov dword [0x6ab79c], 0
mov eax, dword [0x6ab778]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4b26ca
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x30]
mov dword [0xa31d2c], eax
mov eax, dword [0x69ad94]
mov edx, dword [0xa31d2c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa31d30], eax
mov eax, dword [0x69ad90]
mov edx, dword [0xa31d2c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa31d34], eax
mov eax, dword [0x6b5520]
mov dword [0xa31d38], eax
mov dword [0xa31d3c], 0
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
add eax, eax
mov dword [0xa31d00], eax
mov eax, dword [0xa31d00]
mov edx, eax
mov eax, dword [0x539560]
cmp edx, eax
je 0x4b1614
mov eax, dword [0x6b5524]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa31d00]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x6b5524], eax
mov eax, dword [0xa31d00]
mov dword [0x539560], eax
mov dword [0xa31d38], 0
mov eax, dword [0x539854]
test eax, eax
jne 0x4b162b
mov eax, dword [0xa31d38]
cmp eax, 1
je 0x4b3094
mov eax, dword [0xa31d38]
test eax, eax
jne 0x4b1656
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa312a0
call sub.msvcrt.dll_memcpy
jmp 0x4b16a4
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa312a0
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4b16a4
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa312a0
call sub.msvcrt.dll_memcpy
mov dword [0xa31d38], 0
mov eax, dword [0xa31d38]
test eax, eax
je 0x4b16de
mov ecx, dword [0x539560]
mov eax, dword [0x6ab774]
mov edx, dword [eax + 0x40]
mov eax, dword [0x6b5524]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4b16de
mov dword [0xa31d3c], 1
mov eax, dword [0x6b540c]
and eax, 8
test eax, eax
je 0x4b16f6
mov dword [0xa31d40], 1
jmp 0x4b1700
mov dword [0xa31d40], 0
mov eax, dword [0x6b540c]
and eax, 8
test eax, eax
je 0x4b1718
mov dword [0xa31d44], 1
jmp 0x4b1722
mov dword [0xa31d44], 0
mov eax, dword [0x695b4c]
test eax, eax
je 0x4b17ee
mov dword [esp + 8], 1
fld qword [0x568bc8]
fstp qword [esp]
call fcn.0047913e
fld qword [0x568b50]
fdivp st(1)
fstp qword [0xa31d48]
fld qword [0xa31d48]
fnstcw word [ebp - 0x2a]
movzx eax, word [ebp - 0x2a]
mov ah, 0xc
mov word [ebp - 0x2c], ax
fldcw word [ebp - 0x2c]
fistp qword [ebp - 0x38]
fldcw word [ebp - 0x2a]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [0xa31d50], eax
mov dword [0xa31d54], edx
mov eax, dword [0xa31d50]
mov edx, dword [0xa31d54]
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x40], ecx
mov ebx, edx
and ebx, 0
mov dword [ebp - 0x3c], ebx
mov eax, dword [ebp - 0x3c]
or eax, dword [ebp - 0x40]
test eax, eax
je 0x4b17b1
mov dword [0xa31d40], 1
jmp 0x4b17bb
mov dword [0xa31d40], 0
mov eax, dword [0xa31d50]
mov edx, dword [0xa31d54]
mov esi, eax
and esi, 1
mov edi, edx
and edi, 0
mov eax, edi
or eax, esi
test eax, eax
je 0x4b17e4
mov dword [0xa31d44], 1
jmp 0x4b17ee
mov dword [0xa31d44], 0
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x38]
cwde
sub eax, 1
mov dword [0xa31d58], eax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x3a]
cwde
sub eax, 1
mov dword [0xa31d5c], eax
mov eax, dword [0x6ab774]
movzx eax, byte [eax + 0x51]
cmp al, 2
jne 0x4b184e
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa31d5c]
cmp edx, eax
jle 0x4b184e
mov eax, dword [0xa31d5c]
add eax, 1
mov dword [0xa31d5c], eax
mov dword [0xa31d58], 0
mov eax, dword [0xa31d38]
test eax, eax
je 0x4b18b1
mov edx, dword [0xa31d44]
mov eax, dword [0xa31d60]
cmp edx, eax
je 0x4b1870
mov dword [0xa31d3c], 1
mov edx, dword [0xa31d40]
mov eax, dword [0xa31d64]
cmp edx, eax
je 0x4b1889
mov dword [0xa31d3c], 1
mov edx, dword [0xa31d58]
mov eax, dword [0x539874]
cmp edx, eax
jne 0x4b18a7
mov edx, dword [0xa31d5c]
mov eax, dword [0x539878]
cmp edx, eax
je 0x4b18b1
mov dword [0xa31d3c], 1
mov eax, dword [0xa31d38]
test eax, eax
jne 0x4b18c4
mov dword [0xa31d3c], 1
mov eax, dword [0xa31d3c]
test eax, eax
je 0x4b3097
mov edx, dword [0x6ab794]
mov eax, dword [0x6ab798]
imul eax, edx
shl eax, 2
mov dword [0xa31d68], eax
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov edx, dword [eax + 0xc]
mov eax, dword [0xa31d68]
cmp edx, eax
jge 0x4b194e
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa31cf4]
mov eax, dword [0xa31d68]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x69ac30
mov dword [edx], eax
mov edx, dword [0xa31cf4]
mov eax, dword [0xa31d68]
shl edx, 5
add edx, 0x69ac30
mov dword [edx + 0xc], eax
mov edx, dword [0xa31cf4]
mov eax, dword [0x6ab794]
shl edx, 5
add edx, 0x69ac30
mov dword [edx + 4], eax
mov edx, dword [0xa31cf4]
mov eax, dword [0x6ab798]
shl edx, 5
add edx, 0x69ac30
mov dword [edx + 8], eax
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax]
mov dword [0x6ab778], eax
mov eax, dword [0xa31d38]
test eax, eax
je 0x4b1adc
mov dword [0xa31d70], 0
mov dword [0xa31d74], 0
mov dword [0xa31d78], 0xffffffff
mov dword [0xa31d7c], 0
jmp 0x4b1a51
mov eax, dword [0xa31d7c]
shl eax, 5
add eax, 0x69ac20
mov eax, dword [eax]
cmp eax, 4
je 0x4b19f2
mov eax, dword [0xa31d7c]
shl eax, 5
add eax, 0x69ac20
mov eax, dword [eax]
cmp eax, 3
jne 0x4b1a44
mov eax, dword [0xa31d7c]
shl eax, 5
add eax, 0x69ac20
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa31d70]
mov edx, dword [0xa31d74]
cmp ebx, edx
jl 0x4b1a44
cmp ebx, edx
jg 0x4b1a1c
cmp ecx, eax
jbe 0x4b1a44
mov eax, dword [0xa31d7c]
shl eax, 5
add eax, 0x69ac20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa31d70], eax
mov dword [0xa31d74], edx
mov eax, dword [0xa31d7c]
mov dword [0xa31d78], eax
mov eax, dword [0xa31d7c]
add eax, 1
mov dword [0xa31d7c], eax
mov eax, dword [0xa31d7c]
cmp eax, 2
setle al
test al, al
jne 0x4b19ca
mov eax, dword [0xa31d78]
cmp eax, 0xffffffff
je 0x4b1ac6
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov edx, dword [eax + 4]
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa31d78]
shl eax, 5
add eax, 0x69ac30
mov edx, dword [eax]
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4b1adc
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.004579b7
mov dword [0xa31d38], 0
mov dword [0xa31d80], 0
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x40]
mov dword [0xa31d84], eax
mov eax, dword [0x6b5524]
mov dword [0xa31d88], eax
movzx eax, byte [0xa31cf0]
test al, al
je 0x4b1b0d
call fcn.004b1132
mov dword [0xa31d8c], 0
mov dword [0xa31d1c], 0
jmp 0x4b2650
mov dword [0xa31d90], 0
mov dword [0xa31d18], 0
jmp 0x4b2604
mov eax, dword [0xa31d84]
movzx eax, byte [eax]
mov byte [0xa31d94], al
mov eax, dword [0xa31d84]
add eax, 1
mov dword [0xa31d84], eax
mov eax, dword [0xa31d84]
movzx eax, byte [eax]
mov byte [0xa31d95], al
mov eax, dword [0xa31d84]
add eax, 1
mov dword [0xa31d84], eax
mov eax, dword [0xa31d88]
movzx eax, byte [eax]
mov byte [0xa31d96], al
mov eax, dword [0xa31d88]
add eax, 1
mov dword [0xa31d88], eax
mov eax, dword [0xa31d88]
movzx eax, byte [eax]
mov byte [0xa31d97], al
mov eax, dword [0xa31d88]
add eax, 1
mov dword [0xa31d88], eax
mov eax, dword [0xa31d38]
test eax, eax
je 0x4b1c75
movzx edx, byte [0xa31d94]
movzx eax, byte [0xa31d96]
cmp dl, al
jne 0x4b1c75
movzx edx, byte [0xa31d95]
movzx eax, byte [0xa31d97]
cmp dl, al
jne 0x4b1c75
movzx eax, byte [0xa31d95]
test al, al
jns 0x4b1bfa
mov edx, dword [0xa31d44]
mov eax, dword [0xa31d60]
cmp edx, eax
jne 0x4b1c71
mov edx, dword [0xa31d18]
mov eax, dword [0xa31d58]
cmp edx, eax
jne 0x4b1c27
mov edx, dword [0xa31d1c]
mov eax, dword [0xa31d5c]
cmp edx, eax
jne 0x4b1c27
mov edx, dword [0xa31d40]
mov eax, dword [0xa31d64]
cmp edx, eax
jne 0x4b1c74
mov edx, dword [0xa31d18]
mov eax, dword [0x539874]
cmp edx, eax
jne 0x4b25d2
mov edx, dword [0xa31d1c]
mov eax, dword [0x539878]
cmp edx, eax
jne 0x4b25d2
mov edx, dword [0xa31d58]
mov eax, dword [0x539874]
cmp edx, eax
jne 0x4b1c75
mov edx, dword [0xa31d5c]
mov eax, dword [0x539878]
cmp edx, eax
je 0x4b25d2
jmp 0x4b1c75
nop
jmp 0x4b1c75
nop
mov eax, dword [0xa31d88]
sub eax, 2
mov dword [0xa31d88], eax
mov eax, dword [0xa31d88]
movzx edx, byte [0xa31d94]
mov byte [eax], dl
mov eax, dword [0xa31d88]
add eax, 1
mov dword [0xa31d88], eax
mov eax, dword [0xa31d88]
movzx edx, byte [0xa31d95]
mov byte [eax], dl
mov eax, dword [0xa31d88]
add eax, 1
mov dword [0xa31d88], eax
mov dword [0xa31d98], 0
mov eax, dword [0xa31d2c]
cmp eax, 0x1f
jle 0x4b1d8e
movzx eax, byte [0xa31d94]
movzx eax, al
movzx eax, word [eax + eax + 0x5390c0]
movzx eax, ax
mov dword [0xa31d9c], eax
mov dword [0xa31da0], 1
mov eax, dword [0xa31da4]
test eax, eax
je 0x4b1d0a
mov eax, dword [0xa31da4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [0xa31da0]
mov eax, dword [0x69ad8c]
mov ecx, dword [0xa31d2c]
shl ecx, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x20], 0xa31db8
mov dword [esp + 0x1c], 0xa31db4
mov dword [esp + 0x18], 0xa31db0
mov dword [esp + 0x14], 0xa31dac
mov dword [esp + 0x10], 0xa31da8
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa31d9c
mov dword [esp], eax
call fcn.00456f05
mov dword [0xa31dbc], eax
mov eax, dword [0xa31da8]
mov dword [0xa31da4], eax
mov eax, dword [0xa31da8]
mov dword [0xa31dc0], eax
mov dword [0xa31dc4], 0
jmp 0x4b1e82
mov dword [0xa31dc4], 0
mov eax, dword [0xa31d2c]
cmp eax, 8
jne 0x4b1db9
movzx eax, byte [0xa31d94]
movzx eax, al
shl eax, 6
add eax, 0xa23d40
mov dword [0xa31dc0], eax
mov eax, dword [0xa31d2c]
cmp eax, 0xe
jne 0x4b1ddd
movzx eax, byte [0xa31d94]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa27d40
mov dword [0xa31dc0], eax
mov eax, dword [0xa31d2c]
cmp eax, 0x10
jne 0x4b1dfe
movzx eax, byte [0xa31d94]
movzx eax, al
shl eax, 7
add eax, 0xa27d40
mov dword [0xa31dc0], eax
mov eax, dword [0xa31d2c]
cmp eax, 9
jne 0x4b1e29
movzx eax, byte [0xa31d94]
movzx eax, al
shl eax, 6
add eax, 0xa23d40
mov dword [0xa31dc0], eax
mov dword [0xa31d98], 1
mov eax, dword [0xa31d2c]
cmp eax, 0xf
jne 0x4b1e57
movzx eax, byte [0xa31d94]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa27d40
mov dword [0xa31dc0], eax
mov dword [0xa31d98], 1
mov eax, dword [0xa31d2c]
cmp eax, 0x11
jne 0x4b1e82
movzx eax, byte [0xa31d94]
movzx eax, al
shl eax, 7
add eax, 0xa27d40
mov dword [0xa31dc0], eax
mov dword [0xa31d98], 1
movzx eax, byte [0xa31d95]
and eax, 0xf
mov byte [0xa31dc8], al
mov eax, dword [0x539650]
test eax, eax
je 0x4b1ec3
movzx eax, byte [0xa31d95]
movzx eax, al
sar eax, 4
and eax, 7
mov byte [0xa31dc9], al
movzx eax, byte [0xa31d95]
movzx eax, al
sar eax, 7
mov byte [0xa31dca], al
jmp 0x4b1ed5
movzx eax, byte [0xa31d95]
movzx eax, al
sar eax, 4
mov byte [0xa31dc9], al
movzx eax, byte [0xa31dca]
test al, al
je 0x4b1efe
mov eax, dword [0xa31d44]
test eax, eax
je 0x4b1efe
mov eax, dword [0x539650]
test eax, eax
je 0x4b1efe
movzx eax, byte [0xa31dc9]
mov byte [0xa31dc8], al
movzx eax, byte [0xa31dc8]
movzx eax, al
mov eax, dword [eax*4 + 0xa312a0]
mov dword [0xa31d78], eax
movzx eax, byte [0xa31dc9]
movzx eax, al
mov eax, dword [eax*4 + 0xa312a0]
mov dword [0xa31d7c], eax
mov eax, dword [0x6ab778]
mov ecx, dword [0xa31d8c]
mov edx, dword [0x6ab794]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa31d80]
add ecx, edx
mov edx, dword [0xa31d90]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa31dcc], eax
mov edx, dword [0x6ab794]
mov ecx, dword [0x69ad94]
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov dword [0xa31d28], eax
mov dword [0xa31dd0], 0
jmp 0x4b205f
mov dword [0xa31dd4], 0
jmp 0x4b2013
mov eax, dword [0xa31dc0]
movzx eax, byte [eax]
test al, al
je 0x4b1fb6
mov eax, dword [0xa31dcc]
mov edx, dword [0xa31d78]
mov dword [eax], edx
jmp 0x4b1fc3
mov eax, dword [0xa31dcc]
mov edx, dword [0xa31d7c]
mov dword [eax], edx
mov eax, dword [0xa31d98]
test eax, eax
je 0x4b1fec
mov edx, dword [0xa31dd4]
mov eax, dword [0xa31d98]
and eax, edx
test eax, eax
je 0x4b1ff9
mov eax, dword [0xa31dc0]
add eax, 1
mov dword [0xa31dc0], eax
jmp 0x4b1ff9
mov eax, dword [0xa31dc0]
add eax, 1
mov dword [0xa31dc0], eax
mov eax, dword [0xa31dcc]
add eax, 4
mov dword [0xa31dcc], eax
mov eax, dword [0xa31dd4]
add eax, 1
mov dword [0xa31dd4], eax
mov edx, dword [0xa31dd4]
mov eax, dword [0xa31d30]
cmp edx, eax
setl al
test al, al
jne 0x4b1f9b
mov eax, dword [0xa31dcc]
mov edx, dword [0xa31d28]
shl edx, 2
add eax, edx
mov dword [0xa31dcc], eax
mov edx, dword [0xa31dc0]
mov eax, dword [0xa31dc4]
add eax, edx
mov dword [0xa31dc0], eax
mov eax, dword [0xa31dd0]
add eax, 1
mov dword [0xa31dd0], eax
mov edx, dword [0xa31dd0]
mov eax, dword [0xa31d34]
cmp edx, eax
setl al
test al, al
jne 0x4b1f8f
mov eax, dword [0x6ab774]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x4b25d6
mov eax, dword [0xa31d40]
test eax, eax
je 0x4b25d6
mov edx, dword [0xa31d58]
mov eax, dword [0xa31d18]
cmp edx, eax
jne 0x4b25d6
mov edx, dword [0xa31d5c]
mov eax, dword [0xa31d1c]
cmp edx, eax
jne 0x4b25d6
mov eax, dword [0x6ab774]
movzx eax, byte [eax + 0x3d]
movzx eax, al
mov dword [0xa31dd8], eax
mov eax, dword [0x6ab774]
movzx eax, byte [eax + 0x3e]
movzx eax, al
mov dword [0xa31ddc], eax
mov byte [0xa31de0], 0
mov byte [0xa31de1], 0
mov byte [0xa31de2], 0
mov byte [0xa31de3], 0
mov eax, dword [0xa31ddc]
test eax, eax
jne 0x4b211b
mov eax, dword [0xa31dd8]
test eax, eax
jne 0x4b25d5
mov byte [0xa31de2], 1
jmp 0x4b2279
mov edx, dword [0xa31ddc]
mov eax, dword [0xa31dd8]
cmp edx, eax
jge 0x4b2140
mov eax, dword [0xa31ddc]
mov byte [0xa31de3], al
mov byte [0xa31de2], 0xff
jmp 0x4b2279
mov edx, dword [0xa31dd8]
mov eax, dword [0xa31ddc]
cmp edx, eax
jne 0x4b2182
mov eax, dword [0xa31dd8]
cmp eax, 3
jg 0x4b216f
mov eax, dword [0xa31dd8]
mov byte [0xa31de3], al
mov byte [0xa31de2], 1
jmp 0x4b2279
mov byte [0xa31de0], 1
mov byte [0xa31de2], 1
jmp 0x4b2279
mov eax, dword [0xa31dd8]
cmp eax, 2
jle 0x4b21ea
mov edx, dword [0xa31ddc]
mov eax, dword [0xa31dd8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x4b21b5
mov byte [0xa31de0], 1
mov byte [0xa31de2], 2
jmp 0x4b2279
mov edx, dword [0xa31ddc]
mov eax, dword [0xa31dd8]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x4b21de
mov byte [0xa31de0], 1
mov byte [0xa31de2], 3
jmp 0x4b2279
mov byte [0xa31de1], 1
jmp 0x4b2279
mov eax, dword [0xa31dd8]
cmp eax, 1
jg 0x4b2237
mov eax, dword [0xa31ddc]
cmp eax, 3
jg 0x4b2224
mov eax, dword [0xa31dd8]
mov byte [0xa31de3], al
mov eax, dword [0xa31ddc]
mov edx, eax
mov eax, dword [0xa31dd8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
add eax, 1
mov byte [0xa31de2], al
jmp 0x4b2279
mov eax, dword [0xa31dd8]
mov byte [0xa31de3], al
mov byte [0xa31de2], 0xff
jmp 0x4b2279
mov eax, dword [0xa31ddc]
cmp eax, 3
jne 0x4b2251
mov byte [0xa31de3], 2
mov byte [0xa31de2], 2
jmp 0x4b2279
mov eax, dword [0xa31ddc]
cmp eax, 4
jne 0x4b226b
mov byte [0xa31de0], 1
mov byte [0xa31de2], 3
jmp 0x4b2279
mov byte [0xa31de3], 2
mov byte [0xa31de2], 0xff
mov edx, dword [0x69ad94]
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa31de4], eax
mov edx, dword [0x69ad90]
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa31de8], eax
movzx eax, byte [0xa31de1]
test al, al
je 0x4b23b0
mov eax, dword [0xa31de8]
sub eax, 1
mov dword [0xa31dd0], eax
mov eax, dword [0xa31de8]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov byte [0xa31de2], al
movzx eax, byte [0xa31d95]
and eax, 0xf
mov byte [0xa31dc8], al
movzx eax, byte [0xa31dc8]
movzx eax, al
mov eax, dword [eax*4 + 0xa312a0]
mov dword [0xa31d78], eax
mov eax, dword [0x6ab778]
mov ecx, dword [0xa31d8c]
mov edx, dword [0xa31dd0]
add ecx, edx
mov edx, dword [0x6ab794]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa31d80]
add ecx, edx
mov edx, dword [0xa31d90]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa31dcc], eax
mov dword [0xa31dd4], 0
jmp 0x4b236c
mov eax, dword [0xa31dcc]
mov edx, dword [0xa31d78]
mov dword [eax], edx
mov eax, dword [0xa31dcc]
add eax, 4
mov dword [0xa31dcc], eax
mov eax, dword [0xa31dd4]
add eax, 1
mov dword [0xa31dd4], eax
mov edx, dword [0xa31dd4]
mov eax, dword [0xa31de4]
cmp edx, eax
setl al
test al, al
jne 0x4b2345
mov eax, dword [0xa31dd0]
sub eax, 1
mov dword [0xa31dd0], eax
movzx eax, byte [0xa31de2]
sub eax, 1
mov byte [0xa31de2], al
movzx eax, byte [0xa31de2]
test al, al
je 0x4b25d6
jmp 0x4b2301
movzx eax, byte [0xa31de0]
test al, al
je 0x4b24b4
mov eax, dword [0xa31de8]
sub eax, 1
mov dword [0xa31dd0], eax
mov eax, dword [0xa31dd0]
cmp eax, 0xf
jne 0x4b23e0
mov dword [0xa31dd0], 0xe
movzx eax, byte [0xa31d95]
and eax, 0xf
mov byte [0xa31dc8], al
movzx eax, byte [0xa31dc8]
movzx eax, al
mov eax, dword [eax*4 + 0xa312a0]
mov dword [0xa31d78], eax
mov eax, dword [0x6ab778]
mov ecx, dword [0xa31d8c]
mov edx, dword [0xa31dd0]
add ecx, edx
mov edx, dword [0x6ab794]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa31d80]
add ecx, edx
mov edx, dword [0xa31d90]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa31dcc], eax
mov dword [0xa31dd4], 0
jmp 0x4b2470
mov eax, dword [0xa31dcc]
mov edx, dword [0xa31d78]
mov dword [eax], edx
mov eax, dword [0xa31dcc]
add eax, 4
mov dword [0xa31dcc], eax
mov eax, dword [0xa31dd4]
add eax, 1
mov dword [0xa31dd4], eax
mov edx, dword [0xa31dd4]
mov eax, dword [0xa31de4]
cmp edx, eax
setl al
test al, al
jne 0x4b2449
mov eax, dword [0xa31dd0]
sub eax, 1
mov dword [0xa31dd0], eax
movzx eax, byte [0xa31de2]
sub eax, 1
mov byte [0xa31de2], al
movzx eax, byte [0xa31de2]
test al, al
je 0x4b25d6
jmp 0x4b2405
movzx eax, byte [0xa31de3]
movzx edx, al
mov eax, dword [0xa31de8]
cmp edx, eax
jge 0x4b25d6
movzx eax, byte [0xa31de3]
movzx eax, al
mov dword [0xa31dd0], eax
movzx eax, byte [0xa31d95]
and eax, 0xf
mov byte [0xa31dc8], al
movzx eax, byte [0xa31dc8]
movzx eax, al
mov eax, dword [eax*4 + 0xa312a0]
mov dword [0xa31d78], eax
movzx eax, byte [0xa31de2]
cmp al, 0xff
jne 0x4b2526
mov eax, dword [0xa31de8]
mov edx, eax
movzx eax, byte [0xa31de3]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov byte [0xa31de2], al
jmp 0x4b2526
nop
mov eax, dword [0x6ab778]
mov ecx, dword [0xa31d8c]
mov edx, dword [0xa31dd0]
add ecx, edx
mov edx, dword [0x6ab794]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa31d80]
add ecx, edx
mov edx, dword [0xa31d90]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa31dcc], eax
mov dword [0xa31dd4], 0
jmp 0x4b2591
mov eax, dword [0xa31dcc]
mov edx, dword [0xa31d78]
mov dword [eax], edx
mov eax, dword [0xa31dcc]
add eax, 4
mov dword [0xa31dcc], eax
mov eax, dword [0xa31dd4]
add eax, 1
mov dword [0xa31dd4], eax
mov edx, dword [0xa31dd4]
mov eax, dword [0xa31de4]
cmp edx, eax
setl al
test al, al
jne 0x4b256a
mov eax, dword [0xa31dd0]
add eax, 1
mov dword [0xa31dd0], eax
movzx eax, byte [0xa31de2]
sub eax, 1
mov byte [0xa31de2], al
movzx eax, byte [0xa31de2]
test al, al
jne 0x4b2525
jmp 0x4b25d6
nop
jmp 0x4b25d6
nop
mov edx, dword [0x69ad94]
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa31d90]
add eax, edx
mov dword [0xa31d90], eax
mov eax, dword [0xa31d18]
add eax, 1
mov dword [0xa31d18], eax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0xa31d18]
cmp edx, eax
setg al
test al, al
jne 0x4b1b3f
mov edx, dword [0x69ad90]
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa31d8c]
add eax, edx
mov dword [0xa31d8c], eax
mov eax, dword [0xa31d1c]
add eax, 1
mov dword [0xa31d1c], eax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov eax, dword [0xa31d1c]
cmp edx, eax
setg al
test al, al
jne 0x4b1b26
mov eax, dword [0xa31d44]
mov dword [0xa31d60], eax
mov eax, dword [0xa31d40]
mov dword [0xa31d64], eax
mov eax, dword [0xa31d58]
mov dword [0x539874], eax
mov eax, dword [0xa31d5c]
mov dword [0x539878], eax
mov dword [0x6b5520], 1
movzx eax, byte [0xa31cf0]
test al, al
je 0x4b26b0
call fcn.004b1132
mov eax, dword [0xa31cf4]
mov edx, eax
sar edx, 0x1f
mov dword [0xa31df0], eax
mov dword [0xa31df4], edx
jmp 0x4b2ea5
mov eax, dword [0x6ab774]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x4b2b24
movzx eax, byte [0xa31cf0]
test al, al
jne 0x4b287b
mov dword [0xa31df8], 0
mov dword [0xa31dfc], 0
mov dword [0xa31d78], 0xffffffff
mov dword [0xa31d7c], 0
jmp 0x4b279e
mov eax, dword [0xa31d7c]
shl eax, 5
add eax, 0x69ac20
mov eax, dword [eax]
cmp eax, 4
je 0x4b273f
mov eax, dword [0xa31d7c]
shl eax, 5
add eax, 0x69ac20
mov eax, dword [eax]
cmp eax, 3
jne 0x4b2791
mov eax, dword [0xa31d7c]
shl eax, 5
add eax, 0x69ac20
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa31df8]
mov edx, dword [0xa31dfc]
cmp ebx, edx
jl 0x4b2791
cmp ebx, edx
jg 0x4b2769
cmp ecx, eax
jbe 0x4b2791
mov eax, dword [0xa31d7c]
shl eax, 5
add eax, 0x69ac20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa31df8], eax
mov dword [0xa31dfc], edx
mov eax, dword [0xa31d7c]
mov dword [0xa31d78], eax
mov eax, dword [0xa31d7c]
add eax, 1
mov dword [0xa31d7c], eax
mov eax, dword [0xa31d7c]
cmp eax, 2
setle al
test al, al
jne 0x4b2717
mov eax, dword [0x69ab9c]
test eax, eax
jne 0x4b294f
mov eax, dword [0xa31d78]
cmp eax, 0xffffffff
je 0x4b2956
mov eax, dword [0x6b5520]
test eax, eax
je 0x4b2952
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa31d00], eax
mov eax, dword [0xa31d78]
shl eax, 5
add eax, 0x69ac30
mov edx, dword [eax + 4]
mov eax, dword [0xa31d78]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax + 8]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [0xa31d00]
cmp edx, eax
jne 0x4b2955
mov eax, dword [0x539854]
test eax, eax
je 0x4b309a
mov eax, dword [0xa31d00]
mov ecx, eax
mov eax, dword [0x6ab774]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa31d78]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4b309d
jmp 0x4b2956
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa31d00], eax
mov edx, dword [0xa31d00]
mov eax, dword [0x53986c]
cmp edx, eax
je 0x4b28d8
mov eax, dword [0xa31294]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa31d00]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa31294], eax
mov eax, dword [0xa31d00]
mov dword [0x53986c], eax
jmp 0x4b2929
mov eax, dword [0x69ab9c]
test eax, eax
jne 0x4b2925
mov eax, dword [0x539854]
test eax, eax
je 0x4b30a0
mov eax, dword [0xa31d00]
mov ecx, eax
mov eax, dword [0x6ab774]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa31294]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4b2928
mov eax, dword [0x6b5520]
test eax, eax
jne 0x4b30a3
jmp 0x4b2929
nop
jmp 0x4b2929
nop
mov eax, dword [0xa31d00]
mov ecx, eax
mov eax, dword [0x6ab774]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa31294]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4b2956
nop
jmp 0x4b2956
nop
jmp 0x4b2956
nop
mov edx, dword [0x6ab794]
mov eax, dword [0x6ab798]
imul eax, edx
shl eax, 2
mov dword [0xa31e00], eax
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov edx, dword [eax + 0xc]
mov eax, dword [0xa31e00]
cmp edx, eax
jge 0x4b29d3
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa31cf4]
mov eax, dword [0xa31e00]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x69ac30
mov dword [edx], eax
mov edx, dword [0xa31cf4]
mov eax, dword [0xa31e00]
shl edx, 5
add edx, 0x69ac30
mov dword [edx + 0xc], eax
mov edx, dword [0xa31cf4]
mov eax, dword [0x6ab794]
shl edx, 5
add edx, 0x69ac30
mov dword [edx + 4], eax
mov edx, dword [0xa31cf4]
mov eax, dword [0x6ab798]
shl edx, 5
add edx, 0x69ac30
mov dword [edx + 8], eax
movzx eax, byte [0xa31cf0]
test al, al
jne 0x4b2a60
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov edx, dword [eax + 4]
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0x6ab774]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4b2ea1
mov eax, dword [0xa31294]
mov dword [0xa31e04], eax
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax]
mov dword [0xa31e08], eax
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov edx, dword [eax + 4]
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax + 8]
imul eax, edx
mov dword [0xa31e0c], eax
mov eax, dword [0xa31e0c]
test eax, eax
jle 0x4b2ea1
jmp 0x4b2b09
mov eax, dword [0xa31e04]
mov edx, dword [eax]
mov dword [0xa31e10], edx
add eax, 4
mov dword [0xa31e04], eax
mov eax, dword [0xa31e08]
mov edx, dword [0xa31e10]
mov ecx, edx
and ecx, 0xff00ff00
mov edx, dword [0xa31e10]
and edx, 0xff0000
shr edx, 0x10
or ecx, edx
mov edx, dword [0xa31e10]
and edx, 0xff
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
add eax, 4
mov dword [0xa31e08], eax
mov eax, dword [0xa31e0c]
test eax, eax
setne dl
sub eax, 1
mov dword [0xa31e0c], eax
test dl, dl
jne 0x4b2ab5
jmp 0x4b2ea1
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x4b2bc5
call fcn.00456f33
and eax, 0x200
mov dword [0xa31d78], eax
mov eax, dword [0xa31d78]
test eax, eax
je 0x4b2b59
mov dword [0xa31d78], 1
mov dword [0xa31d00], 0
jmp 0x4b2bb6
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x48]
mov edx, dword [0xa31d00]
shl edx, 2
lea ecx, [eax + edx]
mov edx, dword [0xa31d78]
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x48]
mov ebx, dword [0xa31d00]
add ebx, 4
shl ebx, 2
add eax, ebx
mov ebx, dword [eax]
mov eax, edx
shl eax, 3
add eax, edx
add eax, ebx
mov eax, dword [eax*4 + 0xa23ce0]
mov dword [ecx], eax
mov eax, dword [0xa31d00]
add eax, 1
mov dword [0xa31d00], eax
mov eax, dword [0xa31d00]
cmp eax, 3
setle al
test al, al
jne 0x4b2b65
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
mov dword [0xa31d00], eax
mov eax, dword [0x6ab774]
movzx eax, byte [eax + 0x19]
movzx eax, al
mov edx, 1
mov ebx, edx
mov ecx, eax
shl ebx, cl
mov eax, ebx
mov dword [0xa31d78], eax
mov edx, dword [0xa31d00]
mov eax, dword [0x53986c]
cmp edx, eax
je 0x4b2c3d
mov eax, dword [0xa31294]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa31d00]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa31294], eax
mov eax, dword [0xa31d00]
mov dword [0x53986c], eax
jmp 0x4b2cbb
mov eax, dword [0x69ab9c]
test eax, eax
jne 0x4b2cb4
mov eax, dword [0x539854]
test eax, eax
je 0x4b30a6
mov eax, dword [0xa31d00]
mov ecx, eax
mov eax, dword [0x6ab774]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa31294]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4b2cb7
mov eax, dword [0xa31d78]
shl eax, 2
mov edx, eax
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa312a0
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4b2cba
mov eax, dword [0x6b5520]
test eax, eax
jne 0x4b30a9
jmp 0x4b2cbb
nop
jmp 0x4b2cbb
nop
jmp 0x4b2cbb
nop
mov edx, dword [0x6ab794]
mov eax, dword [0x6ab798]
imul eax, edx
shl eax, 2
mov dword [0xa31e14], eax
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov edx, dword [eax + 0xc]
mov eax, dword [0xa31e14]
cmp edx, eax
jge 0x4b2d38
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa31cf4]
mov eax, dword [0xa31e14]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x69ac30
mov dword [edx], eax
mov edx, dword [0xa31cf4]
mov eax, dword [0xa31e14]
shl edx, 5
add edx, 0x69ac30
mov dword [edx + 0xc], eax
mov edx, dword [0xa31cf4]
mov eax, dword [0x6ab794]
shl edx, 5
add edx, 0x69ac30
mov dword [edx + 4], eax
mov edx, dword [0xa31cf4]
mov eax, dword [0x6ab798]
shl edx, 5
add edx, 0x69ac30
mov dword [edx + 8], eax
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax]
mov dword [0x6ab778], eax
mov eax, dword [0xa31d00]
mov ecx, eax
mov eax, dword [0x6ab774]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa31294]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa31d78]
shl eax, 2
mov edx, eax
mov eax, dword [0x6ab774]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa312a0
call sub.msvcrt.dll_memcpy
movzx eax, byte [0xa31cf0]
test al, al
je 0x4b2dd4
call fcn.004b1132
mov eax, dword [0xa31294]
mov dword [0xa31e18], eax
mov eax, dword [0x6ab778]
mov dword [0xa31e1c], eax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa31d90], eax
mov eax, dword [0x6ab774]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa31d8c], eax
mov dword [0xa31d1c], 0
jmp 0x4b2e7b
mov dword [0xa31d18], 0
jmp 0x4b2e5a
mov edx, dword [0xa31e1c]
mov eax, dword [0xa31e18]
movzx ecx, byte [eax]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0xa312a0]
mov dword [edx], ecx
add edx, 4
mov dword [0xa31e1c], edx
add eax, 1
mov dword [0xa31e18], eax
mov eax, dword [0xa31d18]
add eax, 1
mov dword [0xa31d18], eax
mov edx, dword [0xa31d18]
mov eax, dword [0xa31d90]
cmp edx, eax
setl al
test al, al
jne 0x4b2e22
mov eax, dword [0xa31d1c]
add eax, 1
mov dword [0xa31d1c], eax
mov edx, dword [0xa31d1c]
mov eax, dword [0xa31d8c]
cmp edx, eax
setl al
test al, al
jne 0x4b2e16
movzx eax, byte [0xa31cf0]
test al, al
je 0x4b2ea4
call fcn.004b1132
jmp 0x4b2ea4
nop
jmp 0x4b2ea5
nop
mov dword [0x69ab9c], 0
mov dword [0x6b5520], 1
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac20
mov dword [eax], 3
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x69ac88], eax
mov dword [0x69ac8c], edx
mov eax, dword [0x695b4c]
test eax, eax
je 0x4b30aa
mov eax, dword [0x69ad00]
test eax, eax
je 0x4b30aa
mov eax, dword [0xa31e20]
test eax, eax
jne 0x4b2f53
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x80000000
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x40000000
mov dword [esp], str.output_image.raw
mov eax, dword [sym.imp.KERNEL32.dll_CreateFileA]
call eax
sub esp, 0x1c
mov dword [0xa31e20], eax
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax + 4]
mov dword [0xa31e24], eax
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov eax, dword [eax + 8]
mov dword [0xa31e28], eax
mov eax, dword [0xa31e2c]
add eax, 1
mov dword [0xa31e2c], eax
mov eax, dword [0xa31e2c]
mov dword [0xa31e30], eax
mov eax, dword [0xa31e24]
mov dword [0xa31e34], eax
mov eax, dword [0xa31e28]
mov dword [0xa31e38], eax
mov eax, dword [0xa31e20]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetFilePointer]
call eax
sub esp, 0x10
mov edx, dword [0xa31e24]
mov eax, dword [0xa31e28]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac30
mov edx, dword [eax]
mov eax, dword [0xa31e20]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
mov eax, dword [0xa31e20]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call eax
sub esp, 4
mov eax, dword [0xa31e20]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetFilePointer]
call eax
sub esp, 0x10
mov eax, dword [0xa31e20]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0xa31e30
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x4b30aa
nop
jmp 0x4b30aa
nop
jmp 0x4b30aa
nop
jmp 0x4b30aa
nop
jmp 0x4b30aa
nop
jmp 0x4b30aa
nop
jmp 0x4b30aa
nop
jmp 0x4b30aa
nop
jmp 0x4b30aa
nop
jmp 0x4b30aa
nop
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac20
mov eax, dword [eax]
cmp eax, 2
jne 0x4b30ef
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x69ac88], eax
mov dword [0x69ac8c], edx
mov eax, dword [0xa31cf4]
shl eax, 5
add eax, 0x69ac20
mov dword [eax], 1
mov eax, dword [0x6b5534]
cmp eax, 1
jne 0x4b3114
mov dword [0x6b5534], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x5392d8]
cmp eax, 0xffffffff
jne 0x4b3128
mov dword [0x5392d8], 0
mov dword [0xa31240], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret