Function at 0x4b0e62
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov byte [0xa31df0], 0
mov eax, dword [0x695b4c]
test eax, eax
je 0x4b0e82
mov byte [0xa31df0], 1
mov eax, dword [0x6b5634]
cmp eax, 1
jne 0x4b0ea7
mov dword [0x6b5634], 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 0x4b0ec8
mov eax, dword [0x69ae84]
test eax, eax
je 0x4b0ec8
mov dword [0xa31340], 1
jmp 0x4b2de7
mov eax, dword [0x6b5634]
test eax, eax
jne 0x4b2da3
mov dword [0xa31df4], 0xffffffff
mov eax, dword [0x5390a0]
mov edx, dword [0x5390a4]
mov dword [0xa31df8], eax
mov dword [0xa31dfc], edx
mov dword [0xa31e00], 0
jmp 0x4b0f74
mov eax, dword [0xa31e00]
shl eax, 5
add eax, 0x69ad20
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa31df8]
mov edx, dword [0xa31dfc]
cmp ebx, edx
jg 0x4b0f67
cmp ebx, edx
jl 0x4b0f2b
cmp ecx, eax
jae 0x4b0f67
mov eax, dword [0xa31e00]
shl eax, 5
add eax, 0x69ad20
mov eax, dword [eax]
cmp eax, 3
jne 0x4b0f67
mov eax, dword [0xa31e00]
shl eax, 5
add eax, 0x69ad20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa31df8], eax
mov dword [0xa31dfc], edx
mov eax, dword [0xa31e00]
mov dword [0xa31df4], eax
mov eax, dword [0xa31e00]
add eax, 1
mov dword [0xa31e00], eax
mov eax, dword [0xa31e00]
cmp eax, 2
setle al
test al, al
jne 0x4b0f01
mov dword [0xa31e00], 0
jmp 0x4b0fbe
mov eax, dword [0xa31e00]
shl eax, 5
add eax, 0x69ad20
mov eax, dword [eax]
cmp eax, 1
jne 0x4b0fb1
mov eax, dword [0xa31e00]
mov dword [0xa31df4], eax
mov eax, dword [0xa31e00]
add eax, 1
mov dword [0xa31e00], eax
mov eax, dword [0xa31e00]
cmp eax, 2
setle al
test al, al
jne 0x4b0f93
mov eax, dword [0xa31df4]
cmp eax, 0xffffffff
jne 0x4b0fe8
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.0045766b
jmp 0x4b2de7
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad20
mov dword [eax], 2
mov ecx, dword [0xa31df4]
mov eax, dword [0x5390a0]
mov edx, dword [0x5390a4]
shl ecx, 5
add ecx, 0x69ad20
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 0x4b107d
mov dword [esp + 8], 1
fld qword [0x569028]
fstp qword [esp]
call fcn.00478df2
fstp qword [0xa31e08]
fld qword [0xa31e10]
fld qword [0xa31e08]
fsubp st(1)
fabs
fld qword [0x5691b0]
fucompi st(1)
fstp st(0)
ja 0x4b2d42
fld qword [0xa31e08]
fstp qword [0xa31e10]
mov eax, dword [0x6ab874]
test eax, eax
je 0x4b2d45
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa31e18], eax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa31e1c], eax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4b110c
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x69ae94]
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa31e18], eax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x69ae90]
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa31e1c], eax
mov eax, dword [0xa31e18]
cmp eax, 0x200
jg 0x4b113c
mov eax, dword [0xa31e1c]
cmp eax, 0x180
jg 0x4b113c
mov eax, dword [0xa31e18]
add eax, eax
mov dword [0xa31e18], eax
mov eax, dword [0xa31e1c]
add eax, eax
mov dword [0xa31e1c], eax
mov dword [0xa31e20], 0xffffffff
mov dword [0xa31e24], 0xffffffff
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa31e18], eax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa31e1c], eax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4b11d2
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x69ae94]
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa31e18], eax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x69ae90]
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa31e1c], eax
mov eax, dword [0xa31e18]
mov dword [0x6ab894], eax
mov eax, dword [0xa31e1c]
mov dword [0x6ab898], eax
mov dword [0xa31e28], 0
mov dword [0x6ab89c], 0
mov eax, dword [0x6ab878]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4b237e
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x30]
mov dword [0xa31e2c], eax
mov eax, dword [0x69ae94]
mov edx, dword [0xa31e2c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa31e30], eax
mov eax, dword [0x69ae90]
mov edx, dword [0xa31e2c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa31e34], eax
mov eax, dword [0x6b5620]
mov dword [0xa31e38], eax
mov dword [0xa31e3c], 0
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
add eax, eax
mov dword [0xa31e00], eax
mov eax, dword [0xa31e00]
mov edx, eax
mov eax, dword [0x539560]
cmp edx, eax
je 0x4b12c8
mov eax, dword [0x6b5624]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa31e00]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x6b5624], eax
mov eax, dword [0xa31e00]
mov dword [0x539560], eax
mov dword [0xa31e38], 0
mov eax, dword [0x539854]
test eax, eax
jne 0x4b12df
mov eax, dword [0xa31e38]
cmp eax, 1
je 0x4b2d48
mov eax, dword [0xa31e38]
test eax, eax
jne 0x4b130a
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa313a0
call sub.msvcrt.dll_memcpy
jmp 0x4b1358
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa313a0
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4b1358
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa313a0
call sub.msvcrt.dll_memcpy
mov dword [0xa31e38], 0
mov eax, dword [0xa31e38]
test eax, eax
je 0x4b1392
mov ecx, dword [0x539560]
mov eax, dword [0x6ab874]
mov edx, dword [eax + 0x40]
mov eax, dword [0x6b5624]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4b1392
mov dword [0xa31e3c], 1
mov eax, dword [0x6b550c]
and eax, 8
test eax, eax
je 0x4b13aa
mov dword [0xa31e40], 1
jmp 0x4b13b4
mov dword [0xa31e40], 0
mov eax, dword [0x6b550c]
and eax, 8
test eax, eax
je 0x4b13cc
mov dword [0xa31e44], 1
jmp 0x4b13d6
mov dword [0xa31e44], 0
mov eax, dword [0x695b4c]
test eax, eax
je 0x4b14a2
mov dword [esp + 8], 1
fld qword [0x569028]
fstp qword [esp]
call fcn.00478df2
fld qword [0x568fb0]
fdivp st(1)
fstp qword [0xa31e48]
fld qword [0xa31e48]
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 [0xa31e50], eax
mov dword [0xa31e54], edx
mov eax, dword [0xa31e50]
mov edx, dword [0xa31e54]
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 0x4b1465
mov dword [0xa31e40], 1
jmp 0x4b146f
mov dword [0xa31e40], 0
mov eax, dword [0xa31e50]
mov edx, dword [0xa31e54]
mov esi, eax
and esi, 1
mov edi, edx
and edi, 0
mov eax, edi
or eax, esi
test eax, eax
je 0x4b1498
mov dword [0xa31e44], 1
jmp 0x4b14a2
mov dword [0xa31e44], 0
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x38]
cwde
sub eax, 1
mov dword [0xa31e58], eax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x3a]
cwde
sub eax, 1
mov dword [0xa31e5c], eax
mov eax, dword [0x6ab874]
movzx eax, byte [eax + 0x51]
cmp al, 2
jne 0x4b1502
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa31e5c]
cmp edx, eax
jle 0x4b1502
mov eax, dword [0xa31e5c]
add eax, 1
mov dword [0xa31e5c], eax
mov dword [0xa31e58], 0
mov eax, dword [0xa31e38]
test eax, eax
je 0x4b1565
mov edx, dword [0xa31e44]
mov eax, dword [0xa31e60]
cmp edx, eax
je 0x4b1524
mov dword [0xa31e3c], 1
mov edx, dword [0xa31e40]
mov eax, dword [0xa31e64]
cmp edx, eax
je 0x4b153d
mov dword [0xa31e3c], 1
mov edx, dword [0xa31e58]
mov eax, dword [0x539874]
cmp edx, eax
jne 0x4b155b
mov edx, dword [0xa31e5c]
mov eax, dword [0x539878]
cmp edx, eax
je 0x4b1565
mov dword [0xa31e3c], 1
mov eax, dword [0xa31e38]
test eax, eax
jne 0x4b1578
mov dword [0xa31e3c], 1
mov eax, dword [0xa31e3c]
test eax, eax
je 0x4b2d4b
mov edx, dword [0x6ab894]
mov eax, dword [0x6ab898]
imul eax, edx
shl eax, 2
mov dword [0xa31e68], eax
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov edx, dword [eax + 0xc]
mov eax, dword [0xa31e68]
cmp edx, eax
jge 0x4b1602
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa31df4]
mov eax, dword [0xa31e68]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x69ad30
mov dword [edx], eax
mov edx, dword [0xa31df4]
mov eax, dword [0xa31e68]
shl edx, 5
add edx, 0x69ad30
mov dword [edx + 0xc], eax
mov edx, dword [0xa31df4]
mov eax, dword [0x6ab894]
shl edx, 5
add edx, 0x69ad30
mov dword [edx + 4], eax
mov edx, dword [0xa31df4]
mov eax, dword [0x6ab898]
shl edx, 5
add edx, 0x69ad30
mov dword [edx + 8], eax
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax]
mov dword [0x6ab878], eax
mov eax, dword [0xa31e38]
test eax, eax
je 0x4b1790
mov dword [0xa31e70], 0
mov dword [0xa31e74], 0
mov dword [0xa31e78], 0xffffffff
mov dword [0xa31e7c], 0
jmp 0x4b1705
mov eax, dword [0xa31e7c]
shl eax, 5
add eax, 0x69ad20
mov eax, dword [eax]
cmp eax, 4
je 0x4b16a6
mov eax, dword [0xa31e7c]
shl eax, 5
add eax, 0x69ad20
mov eax, dword [eax]
cmp eax, 3
jne 0x4b16f8
mov eax, dword [0xa31e7c]
shl eax, 5
add eax, 0x69ad20
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa31e70]
mov edx, dword [0xa31e74]
cmp ebx, edx
jl 0x4b16f8
cmp ebx, edx
jg 0x4b16d0
cmp ecx, eax
jbe 0x4b16f8
mov eax, dword [0xa31e7c]
shl eax, 5
add eax, 0x69ad20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa31e70], eax
mov dword [0xa31e74], edx
mov eax, dword [0xa31e7c]
mov dword [0xa31e78], eax
mov eax, dword [0xa31e7c]
add eax, 1
mov dword [0xa31e7c], eax
mov eax, dword [0xa31e7c]
cmp eax, 2
setle al
test al, al
jne 0x4b167e
mov eax, dword [0xa31e78]
cmp eax, 0xffffffff
je 0x4b177a
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov edx, dword [eax + 4]
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa31e78]
shl eax, 5
add eax, 0x69ad30
mov edx, dword [eax]
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4b1790
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.0045766b
mov dword [0xa31e38], 0
mov dword [0xa31e80], 0
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x40]
mov dword [0xa31e84], eax
mov eax, dword [0x6b5624]
mov dword [0xa31e88], eax
movzx eax, byte [0xa31df0]
test al, al
je 0x4b17c1
call fcn.004b0de6
mov dword [0xa31e8c], 0
mov dword [0xa31e1c], 0
jmp 0x4b2304
mov dword [0xa31e90], 0
mov dword [0xa31e18], 0
jmp 0x4b22b8
mov eax, dword [0xa31e84]
movzx eax, byte [eax]
mov byte [0xa31e94], al
mov eax, dword [0xa31e84]
add eax, 1
mov dword [0xa31e84], eax
mov eax, dword [0xa31e84]
movzx eax, byte [eax]
mov byte [0xa31e95], al
mov eax, dword [0xa31e84]
add eax, 1
mov dword [0xa31e84], eax
mov eax, dword [0xa31e88]
movzx eax, byte [eax]
mov byte [0xa31e96], al
mov eax, dword [0xa31e88]
add eax, 1
mov dword [0xa31e88], eax
mov eax, dword [0xa31e88]
movzx eax, byte [eax]
mov byte [0xa31e97], al
mov eax, dword [0xa31e88]
add eax, 1
mov dword [0xa31e88], eax
mov eax, dword [0xa31e38]
test eax, eax
je 0x4b1929
movzx edx, byte [0xa31e94]
movzx eax, byte [0xa31e96]
cmp dl, al
jne 0x4b1929
movzx edx, byte [0xa31e95]
movzx eax, byte [0xa31e97]
cmp dl, al
jne 0x4b1929
movzx eax, byte [0xa31e95]
test al, al
jns 0x4b18ae
mov edx, dword [0xa31e44]
mov eax, dword [0xa31e60]
cmp edx, eax
jne 0x4b1925
mov edx, dword [0xa31e18]
mov eax, dword [0xa31e58]
cmp edx, eax
jne 0x4b18db
mov edx, dword [0xa31e1c]
mov eax, dword [0xa31e5c]
cmp edx, eax
jne 0x4b18db
mov edx, dword [0xa31e40]
mov eax, dword [0xa31e64]
cmp edx, eax
jne 0x4b1928
mov edx, dword [0xa31e18]
mov eax, dword [0x539874]
cmp edx, eax
jne 0x4b2286
mov edx, dword [0xa31e1c]
mov eax, dword [0x539878]
cmp edx, eax
jne 0x4b2286
mov edx, dword [0xa31e58]
mov eax, dword [0x539874]
cmp edx, eax
jne 0x4b1929
mov edx, dword [0xa31e5c]
mov eax, dword [0x539878]
cmp edx, eax
je 0x4b2286
jmp 0x4b1929
nop
jmp 0x4b1929
nop
mov eax, dword [0xa31e88]
sub eax, 2
mov dword [0xa31e88], eax
mov eax, dword [0xa31e88]
movzx edx, byte [0xa31e94]
mov byte [eax], dl
mov eax, dword [0xa31e88]
add eax, 1
mov dword [0xa31e88], eax
mov eax, dword [0xa31e88]
movzx edx, byte [0xa31e95]
mov byte [eax], dl
mov eax, dword [0xa31e88]
add eax, 1
mov dword [0xa31e88], eax
mov dword [0xa31e98], 0
mov eax, dword [0xa31e2c]
cmp eax, 0x1f
jle 0x4b1a42
movzx eax, byte [0xa31e94]
movzx eax, al
movzx eax, word [eax + eax + 0x5390c0]
movzx eax, ax
mov dword [0xa31e9c], eax
mov dword [0xa31ea0], 1
mov eax, dword [0xa31ea4]
test eax, eax
je 0x4b19be
mov eax, dword [0xa31ea4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [0xa31ea0]
mov eax, dword [0x69ae8c]
mov ecx, dword [0xa31e2c]
shl ecx, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x20], 0xa31eb8
mov dword [esp + 0x1c], 0xa31eb4
mov dword [esp + 0x18], 0xa31eb0
mov dword [esp + 0x14], 0xa31eac
mov dword [esp + 0x10], 0xa31ea8
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa31e9c
mov dword [esp], eax
call fcn.00456bb9
mov dword [0xa31ebc], eax
mov eax, dword [0xa31ea8]
mov dword [0xa31ea4], eax
mov eax, dword [0xa31ea8]
mov dword [0xa31ec0], eax
mov dword [0xa31ec4], 0
jmp 0x4b1b36
mov dword [0xa31ec4], 0
mov eax, dword [0xa31e2c]
cmp eax, 8
jne 0x4b1a6d
movzx eax, byte [0xa31e94]
movzx eax, al
shl eax, 6
add eax, 0xa23e40
mov dword [0xa31ec0], eax
mov eax, dword [0xa31e2c]
cmp eax, 0xe
jne 0x4b1a91
movzx eax, byte [0xa31e94]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa27e40
mov dword [0xa31ec0], eax
mov eax, dword [0xa31e2c]
cmp eax, 0x10
jne 0x4b1ab2
movzx eax, byte [0xa31e94]
movzx eax, al
shl eax, 7
add eax, 0xa27e40
mov dword [0xa31ec0], eax
mov eax, dword [0xa31e2c]
cmp eax, 9
jne 0x4b1add
movzx eax, byte [0xa31e94]
movzx eax, al
shl eax, 6
add eax, 0xa23e40
mov dword [0xa31ec0], eax
mov dword [0xa31e98], 1
mov eax, dword [0xa31e2c]
cmp eax, 0xf
jne 0x4b1b0b
movzx eax, byte [0xa31e94]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa27e40
mov dword [0xa31ec0], eax
mov dword [0xa31e98], 1
mov eax, dword [0xa31e2c]
cmp eax, 0x11
jne 0x4b1b36
movzx eax, byte [0xa31e94]
movzx eax, al
shl eax, 7
add eax, 0xa27e40
mov dword [0xa31ec0], eax
mov dword [0xa31e98], 1
movzx eax, byte [0xa31e95]
and eax, 0xf
mov byte [0xa31ec8], al
mov eax, dword [0x539650]
test eax, eax
je 0x4b1b77
movzx eax, byte [0xa31e95]
movzx eax, al
sar eax, 4
and eax, 7
mov byte [0xa31ec9], al
movzx eax, byte [0xa31e95]
movzx eax, al
sar eax, 7
mov byte [0xa31eca], al
jmp 0x4b1b89
movzx eax, byte [0xa31e95]
movzx eax, al
sar eax, 4
mov byte [0xa31ec9], al
movzx eax, byte [0xa31eca]
test al, al
je 0x4b1bb2
mov eax, dword [0xa31e44]
test eax, eax
je 0x4b1bb2
mov eax, dword [0x539650]
test eax, eax
je 0x4b1bb2
movzx eax, byte [0xa31ec9]
mov byte [0xa31ec8], al
movzx eax, byte [0xa31ec8]
movzx eax, al
mov eax, dword [eax*4 + 0xa313a0]
mov dword [0xa31e78], eax
movzx eax, byte [0xa31ec9]
movzx eax, al
mov eax, dword [eax*4 + 0xa313a0]
mov dword [0xa31e7c], eax
mov eax, dword [0x6ab878]
mov ecx, dword [0xa31e8c]
mov edx, dword [0x6ab894]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa31e80]
add ecx, edx
mov edx, dword [0xa31e90]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa31ecc], eax
mov edx, dword [0x6ab894]
mov ecx, dword [0x69ae94]
mov eax, dword [0x6ab874]
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 [0xa31e28], eax
mov dword [0xa31ed0], 0
jmp 0x4b1d13
mov dword [0xa31ed4], 0
jmp 0x4b1cc7
mov eax, dword [0xa31ec0]
movzx eax, byte [eax]
test al, al
je 0x4b1c6a
mov eax, dword [0xa31ecc]
mov edx, dword [0xa31e78]
mov dword [eax], edx
jmp 0x4b1c77
mov eax, dword [0xa31ecc]
mov edx, dword [0xa31e7c]
mov dword [eax], edx
mov eax, dword [0xa31e98]
test eax, eax
je 0x4b1ca0
mov edx, dword [0xa31ed4]
mov eax, dword [0xa31e98]
and eax, edx
test eax, eax
je 0x4b1cad
mov eax, dword [0xa31ec0]
add eax, 1
mov dword [0xa31ec0], eax
jmp 0x4b1cad
mov eax, dword [0xa31ec0]
add eax, 1
mov dword [0xa31ec0], eax
mov eax, dword [0xa31ecc]
add eax, 4
mov dword [0xa31ecc], eax
mov eax, dword [0xa31ed4]
add eax, 1
mov dword [0xa31ed4], eax
mov edx, dword [0xa31ed4]
mov eax, dword [0xa31e30]
cmp edx, eax
setl al
test al, al
jne 0x4b1c4f
mov eax, dword [0xa31ecc]
mov edx, dword [0xa31e28]
shl edx, 2
add eax, edx
mov dword [0xa31ecc], eax
mov edx, dword [0xa31ec0]
mov eax, dword [0xa31ec4]
add eax, edx
mov dword [0xa31ec0], eax
mov eax, dword [0xa31ed0]
add eax, 1
mov dword [0xa31ed0], eax
mov edx, dword [0xa31ed0]
mov eax, dword [0xa31e34]
cmp edx, eax
setl al
test al, al
jne 0x4b1c43
mov eax, dword [0x6ab874]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x4b228a
mov eax, dword [0xa31e40]
test eax, eax
je 0x4b228a
mov edx, dword [0xa31e58]
mov eax, dword [0xa31e18]
cmp edx, eax
jne 0x4b228a
mov edx, dword [0xa31e5c]
mov eax, dword [0xa31e1c]
cmp edx, eax
jne 0x4b228a
mov eax, dword [0x6ab874]
movzx eax, byte [eax + 0x3d]
movzx eax, al
mov dword [0xa31ed8], eax
mov eax, dword [0x6ab874]
movzx eax, byte [eax + 0x3e]
movzx eax, al
mov dword [0xa31edc], eax
mov byte [0xa31ee0], 0
mov byte [0xa31ee1], 0
mov byte [0xa31ee2], 0
mov byte [0xa31ee3], 0
mov eax, dword [0xa31edc]
test eax, eax
jne 0x4b1dcf
mov eax, dword [0xa31ed8]
test eax, eax
jne 0x4b2289
mov byte [0xa31ee2], 1
jmp 0x4b1f2d
mov edx, dword [0xa31edc]
mov eax, dword [0xa31ed8]
cmp edx, eax
jge 0x4b1df4
mov eax, dword [0xa31edc]
mov byte [0xa31ee3], al
mov byte [0xa31ee2], 0xff
jmp 0x4b1f2d
mov edx, dword [0xa31ed8]
mov eax, dword [0xa31edc]
cmp edx, eax
jne 0x4b1e36
mov eax, dword [0xa31ed8]
cmp eax, 3
jg 0x4b1e23
mov eax, dword [0xa31ed8]
mov byte [0xa31ee3], al
mov byte [0xa31ee2], 1
jmp 0x4b1f2d
mov byte [0xa31ee0], 1
mov byte [0xa31ee2], 1
jmp 0x4b1f2d
mov eax, dword [0xa31ed8]
cmp eax, 2
jle 0x4b1e9e
mov edx, dword [0xa31edc]
mov eax, dword [0xa31ed8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x4b1e69
mov byte [0xa31ee0], 1
mov byte [0xa31ee2], 2
jmp 0x4b1f2d
mov edx, dword [0xa31edc]
mov eax, dword [0xa31ed8]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x4b1e92
mov byte [0xa31ee0], 1
mov byte [0xa31ee2], 3
jmp 0x4b1f2d
mov byte [0xa31ee1], 1
jmp 0x4b1f2d
mov eax, dword [0xa31ed8]
cmp eax, 1
jg 0x4b1eeb
mov eax, dword [0xa31edc]
cmp eax, 3
jg 0x4b1ed8
mov eax, dword [0xa31ed8]
mov byte [0xa31ee3], al
mov eax, dword [0xa31edc]
mov edx, eax
mov eax, dword [0xa31ed8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
add eax, 1
mov byte [0xa31ee2], al
jmp 0x4b1f2d
mov eax, dword [0xa31ed8]
mov byte [0xa31ee3], al
mov byte [0xa31ee2], 0xff
jmp 0x4b1f2d
mov eax, dword [0xa31edc]
cmp eax, 3
jne 0x4b1f05
mov byte [0xa31ee3], 2
mov byte [0xa31ee2], 2
jmp 0x4b1f2d
mov eax, dword [0xa31edc]
cmp eax, 4
jne 0x4b1f1f
mov byte [0xa31ee0], 1
mov byte [0xa31ee2], 3
jmp 0x4b1f2d
mov byte [0xa31ee3], 2
mov byte [0xa31ee2], 0xff
mov edx, dword [0x69ae94]
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa31ee4], eax
mov edx, dword [0x69ae90]
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa31ee8], eax
movzx eax, byte [0xa31ee1]
test al, al
je 0x4b2064
mov eax, dword [0xa31ee8]
sub eax, 1
mov dword [0xa31ed0], eax
mov eax, dword [0xa31ee8]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov byte [0xa31ee2], al
movzx eax, byte [0xa31e95]
and eax, 0xf
mov byte [0xa31ec8], al
movzx eax, byte [0xa31ec8]
movzx eax, al
mov eax, dword [eax*4 + 0xa313a0]
mov dword [0xa31e78], eax
mov eax, dword [0x6ab878]
mov ecx, dword [0xa31e8c]
mov edx, dword [0xa31ed0]
add ecx, edx
mov edx, dword [0x6ab894]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa31e80]
add ecx, edx
mov edx, dword [0xa31e90]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa31ecc], eax
mov dword [0xa31ed4], 0
jmp 0x4b2020
mov eax, dword [0xa31ecc]
mov edx, dword [0xa31e78]
mov dword [eax], edx
mov eax, dword [0xa31ecc]
add eax, 4
mov dword [0xa31ecc], eax
mov eax, dword [0xa31ed4]
add eax, 1
mov dword [0xa31ed4], eax
mov edx, dword [0xa31ed4]
mov eax, dword [0xa31ee4]
cmp edx, eax
setl al
test al, al
jne 0x4b1ff9
mov eax, dword [0xa31ed0]
sub eax, 1
mov dword [0xa31ed0], eax
movzx eax, byte [0xa31ee2]
sub eax, 1
mov byte [0xa31ee2], al
movzx eax, byte [0xa31ee2]
test al, al
je 0x4b228a
jmp 0x4b1fb5
movzx eax, byte [0xa31ee0]
test al, al
je 0x4b2168
mov eax, dword [0xa31ee8]
sub eax, 1
mov dword [0xa31ed0], eax
mov eax, dword [0xa31ed0]
cmp eax, 0xf
jne 0x4b2094
mov dword [0xa31ed0], 0xe
movzx eax, byte [0xa31e95]
and eax, 0xf
mov byte [0xa31ec8], al
movzx eax, byte [0xa31ec8]
movzx eax, al
mov eax, dword [eax*4 + 0xa313a0]
mov dword [0xa31e78], eax
mov eax, dword [0x6ab878]
mov ecx, dword [0xa31e8c]
mov edx, dword [0xa31ed0]
add ecx, edx
mov edx, dword [0x6ab894]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa31e80]
add ecx, edx
mov edx, dword [0xa31e90]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa31ecc], eax
mov dword [0xa31ed4], 0
jmp 0x4b2124
mov eax, dword [0xa31ecc]
mov edx, dword [0xa31e78]
mov dword [eax], edx
mov eax, dword [0xa31ecc]
add eax, 4
mov dword [0xa31ecc], eax
mov eax, dword [0xa31ed4]
add eax, 1
mov dword [0xa31ed4], eax
mov edx, dword [0xa31ed4]
mov eax, dword [0xa31ee4]
cmp edx, eax
setl al
test al, al
jne 0x4b20fd
mov eax, dword [0xa31ed0]
sub eax, 1
mov dword [0xa31ed0], eax
movzx eax, byte [0xa31ee2]
sub eax, 1
mov byte [0xa31ee2], al
movzx eax, byte [0xa31ee2]
test al, al
je 0x4b228a
jmp 0x4b20b9
movzx eax, byte [0xa31ee3]
movzx edx, al
mov eax, dword [0xa31ee8]
cmp edx, eax
jge 0x4b228a
movzx eax, byte [0xa31ee3]
movzx eax, al
mov dword [0xa31ed0], eax
movzx eax, byte [0xa31e95]
and eax, 0xf
mov byte [0xa31ec8], al
movzx eax, byte [0xa31ec8]
movzx eax, al
mov eax, dword [eax*4 + 0xa313a0]
mov dword [0xa31e78], eax
movzx eax, byte [0xa31ee2]
cmp al, 0xff
jne 0x4b21da
mov eax, dword [0xa31ee8]
mov edx, eax
movzx eax, byte [0xa31ee3]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov byte [0xa31ee2], al
jmp 0x4b21da
nop
mov eax, dword [0x6ab878]
mov ecx, dword [0xa31e8c]
mov edx, dword [0xa31ed0]
add ecx, edx
mov edx, dword [0x6ab894]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa31e80]
add ecx, edx
mov edx, dword [0xa31e90]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa31ecc], eax
mov dword [0xa31ed4], 0
jmp 0x4b2245
mov eax, dword [0xa31ecc]
mov edx, dword [0xa31e78]
mov dword [eax], edx
mov eax, dword [0xa31ecc]
add eax, 4
mov dword [0xa31ecc], eax
mov eax, dword [0xa31ed4]
add eax, 1
mov dword [0xa31ed4], eax
mov edx, dword [0xa31ed4]
mov eax, dword [0xa31ee4]
cmp edx, eax
setl al
test al, al
jne 0x4b221e
mov eax, dword [0xa31ed0]
add eax, 1
mov dword [0xa31ed0], eax
movzx eax, byte [0xa31ee2]
sub eax, 1
mov byte [0xa31ee2], al
movzx eax, byte [0xa31ee2]
test al, al
jne 0x4b21d9
jmp 0x4b228a
nop
jmp 0x4b228a
nop
mov edx, dword [0x69ae94]
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa31e90]
add eax, edx
mov dword [0xa31e90], eax
mov eax, dword [0xa31e18]
add eax, 1
mov dword [0xa31e18], eax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0xa31e18]
cmp edx, eax
setg al
test al, al
jne 0x4b17f3
mov edx, dword [0x69ae90]
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa31e8c]
add eax, edx
mov dword [0xa31e8c], eax
mov eax, dword [0xa31e1c]
add eax, 1
mov dword [0xa31e1c], eax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov eax, dword [0xa31e1c]
cmp edx, eax
setg al
test al, al
jne 0x4b17da
mov eax, dword [0xa31e44]
mov dword [0xa31e60], eax
mov eax, dword [0xa31e40]
mov dword [0xa31e64], eax
mov eax, dword [0xa31e58]
mov dword [0x539874], eax
mov eax, dword [0xa31e5c]
mov dword [0x539878], eax
mov dword [0x6b5620], 1
movzx eax, byte [0xa31df0]
test al, al
je 0x4b2364
call fcn.004b0de6
mov eax, dword [0xa31df4]
mov edx, eax
sar edx, 0x1f
mov dword [0xa31ef0], eax
mov dword [0xa31ef4], edx
jmp 0x4b2b59
mov eax, dword [0x6ab874]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x4b27d8
movzx eax, byte [0xa31df0]
test al, al
jne 0x4b252f
mov dword [0xa31ef8], 0
mov dword [0xa31efc], 0
mov dword [0xa31e78], 0xffffffff
mov dword [0xa31e7c], 0
jmp 0x4b2452
mov eax, dword [0xa31e7c]
shl eax, 5
add eax, 0x69ad20
mov eax, dword [eax]
cmp eax, 4
je 0x4b23f3
mov eax, dword [0xa31e7c]
shl eax, 5
add eax, 0x69ad20
mov eax, dword [eax]
cmp eax, 3
jne 0x4b2445
mov eax, dword [0xa31e7c]
shl eax, 5
add eax, 0x69ad20
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa31ef8]
mov edx, dword [0xa31efc]
cmp ebx, edx
jl 0x4b2445
cmp ebx, edx
jg 0x4b241d
cmp ecx, eax
jbe 0x4b2445
mov eax, dword [0xa31e7c]
shl eax, 5
add eax, 0x69ad20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa31ef8], eax
mov dword [0xa31efc], edx
mov eax, dword [0xa31e7c]
mov dword [0xa31e78], eax
mov eax, dword [0xa31e7c]
add eax, 1
mov dword [0xa31e7c], eax
mov eax, dword [0xa31e7c]
cmp eax, 2
setle al
test al, al
jne 0x4b23cb
mov eax, dword [0x69ac9c]
test eax, eax
jne 0x4b2603
mov eax, dword [0xa31e78]
cmp eax, 0xffffffff
je 0x4b260a
mov eax, dword [0x6b5620]
test eax, eax
je 0x4b2606
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa31e00], eax
mov eax, dword [0xa31e78]
shl eax, 5
add eax, 0x69ad30
mov edx, dword [eax + 4]
mov eax, dword [0xa31e78]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax + 8]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [0xa31e00]
cmp edx, eax
jne 0x4b2609
mov eax, dword [0x539854]
test eax, eax
je 0x4b2d4e
mov eax, dword [0xa31e00]
mov ecx, eax
mov eax, dword [0x6ab874]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa31e78]
shl eax, 5
add eax, 0x69ad30
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 0x4b2d51
jmp 0x4b260a
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa31e00], eax
mov edx, dword [0xa31e00]
mov eax, dword [0x53986c]
cmp edx, eax
je 0x4b258c
mov eax, dword [0xa31394]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa31e00]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa31394], eax
mov eax, dword [0xa31e00]
mov dword [0x53986c], eax
jmp 0x4b25dd
mov eax, dword [0x69ac9c]
test eax, eax
jne 0x4b25d9
mov eax, dword [0x539854]
test eax, eax
je 0x4b2d54
mov eax, dword [0xa31e00]
mov ecx, eax
mov eax, dword [0x6ab874]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa31394]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4b25dc
mov eax, dword [0x6b5620]
test eax, eax
jne 0x4b2d57
jmp 0x4b25dd
nop
jmp 0x4b25dd
nop
mov eax, dword [0xa31e00]
mov ecx, eax
mov eax, dword [0x6ab874]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa31394]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4b260a
nop
jmp 0x4b260a
nop
jmp 0x4b260a
nop
mov edx, dword [0x6ab894]
mov eax, dword [0x6ab898]
imul eax, edx
shl eax, 2
mov dword [0xa31f00], eax
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov edx, dword [eax + 0xc]
mov eax, dword [0xa31f00]
cmp edx, eax
jge 0x4b2687
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa31df4]
mov eax, dword [0xa31f00]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x69ad30
mov dword [edx], eax
mov edx, dword [0xa31df4]
mov eax, dword [0xa31f00]
shl edx, 5
add edx, 0x69ad30
mov dword [edx + 0xc], eax
mov edx, dword [0xa31df4]
mov eax, dword [0x6ab894]
shl edx, 5
add edx, 0x69ad30
mov dword [edx + 4], eax
mov edx, dword [0xa31df4]
mov eax, dword [0x6ab898]
shl edx, 5
add edx, 0x69ad30
mov dword [edx + 8], eax
movzx eax, byte [0xa31df0]
test al, al
jne 0x4b2714
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov edx, dword [eax + 4]
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0x6ab874]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4b2b55
mov eax, dword [0xa31394]
mov dword [0xa31f04], eax
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax]
mov dword [0xa31f08], eax
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov edx, dword [eax + 4]
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax + 8]
imul eax, edx
mov dword [0xa31f0c], eax
mov eax, dword [0xa31f0c]
test eax, eax
jle 0x4b2b55
jmp 0x4b27bd
mov eax, dword [0xa31f04]
mov edx, dword [eax]
mov dword [0xa31f10], edx
add eax, 4
mov dword [0xa31f04], eax
mov eax, dword [0xa31f08]
mov edx, dword [0xa31f10]
mov ecx, edx
and ecx, 0xff00ff00
mov edx, dword [0xa31f10]
and edx, 0xff0000
shr edx, 0x10
or ecx, edx
mov edx, dword [0xa31f10]
and edx, 0xff
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
add eax, 4
mov dword [0xa31f08], eax
mov eax, dword [0xa31f0c]
test eax, eax
setne dl
sub eax, 1
mov dword [0xa31f0c], eax
test dl, dl
jne 0x4b2769
jmp 0x4b2b55
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x4b2879
call fcn.00456be7
and eax, 0x200
mov dword [0xa31e78], eax
mov eax, dword [0xa31e78]
test eax, eax
je 0x4b280d
mov dword [0xa31e78], 1
mov dword [0xa31e00], 0
jmp 0x4b286a
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x48]
mov edx, dword [0xa31e00]
shl edx, 2
lea ecx, [eax + edx]
mov edx, dword [0xa31e78]
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x48]
mov ebx, dword [0xa31e00]
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 + 0xa23de0]
mov dword [ecx], eax
mov eax, dword [0xa31e00]
add eax, 1
mov dword [0xa31e00], eax
mov eax, dword [0xa31e00]
cmp eax, 3
setle al
test al, al
jne 0x4b2819
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
mov dword [0xa31e00], eax
mov eax, dword [0x6ab874]
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 [0xa31e78], eax
mov edx, dword [0xa31e00]
mov eax, dword [0x53986c]
cmp edx, eax
je 0x4b28f1
mov eax, dword [0xa31394]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa31e00]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa31394], eax
mov eax, dword [0xa31e00]
mov dword [0x53986c], eax
jmp 0x4b296f
mov eax, dword [0x69ac9c]
test eax, eax
jne 0x4b2968
mov eax, dword [0x539854]
test eax, eax
je 0x4b2d5a
mov eax, dword [0xa31e00]
mov ecx, eax
mov eax, dword [0x6ab874]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa31394]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4b296b
mov eax, dword [0xa31e78]
shl eax, 2
mov edx, eax
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa313a0
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4b296e
mov eax, dword [0x6b5620]
test eax, eax
jne 0x4b2d5d
jmp 0x4b296f
nop
jmp 0x4b296f
nop
jmp 0x4b296f
nop
mov edx, dword [0x6ab894]
mov eax, dword [0x6ab898]
imul eax, edx
shl eax, 2
mov dword [0xa31f14], eax
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov edx, dword [eax + 0xc]
mov eax, dword [0xa31f14]
cmp edx, eax
jge 0x4b29ec
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa31df4]
mov eax, dword [0xa31f14]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x69ad30
mov dword [edx], eax
mov edx, dword [0xa31df4]
mov eax, dword [0xa31f14]
shl edx, 5
add edx, 0x69ad30
mov dword [edx + 0xc], eax
mov edx, dword [0xa31df4]
mov eax, dword [0x6ab894]
shl edx, 5
add edx, 0x69ad30
mov dword [edx + 4], eax
mov edx, dword [0xa31df4]
mov eax, dword [0x6ab898]
shl edx, 5
add edx, 0x69ad30
mov dword [edx + 8], eax
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax]
mov dword [0x6ab878], eax
mov eax, dword [0xa31e00]
mov ecx, eax
mov eax, dword [0x6ab874]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa31394]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa31e78]
shl eax, 2
mov edx, eax
mov eax, dword [0x6ab874]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa313a0
call sub.msvcrt.dll_memcpy
movzx eax, byte [0xa31df0]
test al, al
je 0x4b2a88
call fcn.004b0de6
mov eax, dword [0xa31394]
mov dword [0xa31f18], eax
mov eax, dword [0x6ab878]
mov dword [0xa31f1c], eax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa31e90], eax
mov eax, dword [0x6ab874]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa31e8c], eax
mov dword [0xa31e1c], 0
jmp 0x4b2b2f
mov dword [0xa31e18], 0
jmp 0x4b2b0e
mov edx, dword [0xa31f1c]
mov eax, dword [0xa31f18]
movzx ecx, byte [eax]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0xa313a0]
mov dword [edx], ecx
add edx, 4
mov dword [0xa31f1c], edx
add eax, 1
mov dword [0xa31f18], eax
mov eax, dword [0xa31e18]
add eax, 1
mov dword [0xa31e18], eax
mov edx, dword [0xa31e18]
mov eax, dword [0xa31e90]
cmp edx, eax
setl al
test al, al
jne 0x4b2ad6
mov eax, dword [0xa31e1c]
add eax, 1
mov dword [0xa31e1c], eax
mov edx, dword [0xa31e1c]
mov eax, dword [0xa31e8c]
cmp edx, eax
setl al
test al, al
jne 0x4b2aca
movzx eax, byte [0xa31df0]
test al, al
je 0x4b2b58
call fcn.004b0de6
jmp 0x4b2b58
nop
jmp 0x4b2b59
nop
mov dword [0x69ac9c], 0
mov dword [0x6b5620], 1
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad20
mov dword [eax], 3
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x69ad88], eax
mov dword [0x69ad8c], edx
mov eax, dword [0x695b4c]
test eax, eax
je 0x4b2d5e
mov eax, dword [0x69ae00]
test eax, eax
je 0x4b2d5e
mov eax, dword [0xa31f20]
test eax, eax
jne 0x4b2c07
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 [0xa31f20], eax
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax + 4]
mov dword [0xa31f24], eax
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov eax, dword [eax + 8]
mov dword [0xa31f28], eax
mov eax, dword [0xa31f2c]
add eax, 1
mov dword [0xa31f2c], eax
mov eax, dword [0xa31f2c]
mov dword [0xa31f30], eax
mov eax, dword [0xa31f24]
mov dword [0xa31f34], eax
mov eax, dword [0xa31f28]
mov dword [0xa31f38], eax
mov eax, dword [0xa31f20]
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 [0xa31f24]
mov eax, dword [0xa31f28]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad30
mov edx, dword [eax]
mov eax, dword [0xa31f20]
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 [0xa31f20]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call eax
sub esp, 4
mov eax, dword [0xa31f20]
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 [0xa31f20]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0xa31f30
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x4b2d5e
nop
jmp 0x4b2d5e
nop
jmp 0x4b2d5e
nop
jmp 0x4b2d5e
nop
jmp 0x4b2d5e
nop
jmp 0x4b2d5e
nop
jmp 0x4b2d5e
nop
jmp 0x4b2d5e
nop
jmp 0x4b2d5e
nop
jmp 0x4b2d5e
nop
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad20
mov eax, dword [eax]
cmp eax, 2
jne 0x4b2da3
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x69ad88], eax
mov dword [0x69ad8c], edx
mov eax, dword [0xa31df4]
shl eax, 5
add eax, 0x69ad20
mov dword [eax], 1
mov eax, dword [0x6b5634]
cmp eax, 1
jne 0x4b2dc8
mov dword [0x6b5634], 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 0x4b2ddc
mov dword [0x5392d8], 0
mov dword [0xa31340], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret