Function at 0x4aae2e
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov byte [0xa2bbb0], 0
mov eax, dword [0x68fb4c]
test eax, eax
je 0x4aae4e
mov byte [0xa2bbb0], 1
mov eax, dword [0x6af3f4]
cmp eax, 1
jne 0x4aae73
mov dword [0x6af3f4], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x68fb4c]
test eax, eax
jne 0x4aae94
mov eax, dword [0x694c44]
test eax, eax
je 0x4aae94
mov dword [0xa2b100], 1
jmp 0x4acdb3
mov eax, dword [0x6af3f4]
test eax, eax
jne 0x4acd6f
mov dword [0xa2bbb4], 0xffffffff
mov eax, dword [0x5330a0]
mov edx, dword [0x5330a4]
mov dword [0xa2bbb8], eax
mov dword [0xa2bbbc], edx
mov dword [0xa2bbc0], 0
jmp 0x4aaf40
mov eax, dword [0xa2bbc0]
shl eax, 5
add eax, 0x694ae0
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa2bbb8]
mov edx, dword [0xa2bbbc]
cmp ebx, edx
jg 0x4aaf33
cmp ebx, edx
jl 0x4aaef7
cmp ecx, eax
jae 0x4aaf33
mov eax, dword [0xa2bbc0]
shl eax, 5
add eax, 0x694ae0
mov eax, dword [eax]
cmp eax, 3
jne 0x4aaf33
mov eax, dword [0xa2bbc0]
shl eax, 5
add eax, 0x694ae0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa2bbb8], eax
mov dword [0xa2bbbc], edx
mov eax, dword [0xa2bbc0]
mov dword [0xa2bbb4], eax
mov eax, dword [0xa2bbc0]
add eax, 1
mov dword [0xa2bbc0], eax
mov eax, dword [0xa2bbc0]
cmp eax, 2
setle al
test al, al
jne 0x4aaecd
mov dword [0xa2bbc0], 0
jmp 0x4aaf8a
mov eax, dword [0xa2bbc0]
shl eax, 5
add eax, 0x694ae0
mov eax, dword [eax]
cmp eax, 1
jne 0x4aaf7d
mov eax, dword [0xa2bbc0]
mov dword [0xa2bbb4], eax
mov eax, dword [0xa2bbc0]
add eax, 1
mov dword [0xa2bbc0], eax
mov eax, dword [0xa2bbc0]
cmp eax, 2
setle al
test al, al
jne 0x4aaf5f
mov eax, dword [0xa2bbb4]
cmp eax, 0xffffffff
jne 0x4aafb4
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.00451637
jmp 0x4acdb3
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694ae0
mov dword [eax], 2
mov ecx, dword [0xa2bbb4]
mov eax, dword [0x5330a0]
mov edx, dword [0x5330a4]
shl ecx, 5
add ecx, 0x694ae0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add eax, 1
adc edx, 0
mov dword [0x5330a0], eax
mov dword [0x5330a4], edx
mov eax, dword [0x68fb4c]
test eax, eax
je 0x4ab049
mov dword [esp + 8], 1
fld qword [0x563008]
fstp qword [esp]
call fcn.00472dbe
fstp qword [0xa2bbc8]
fld qword [0xa2bbd0]
fld qword [0xa2bbc8]
fsubp st(1)
fabs
fld qword [0x563190]
fucompi st(1)
fstp st(0)
ja 0x4acd0e
fld qword [0xa2bbc8]
fstp qword [0xa2bbd0]
mov eax, dword [0x6a5634]
test eax, eax
je 0x4acd11
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa2bbd8], eax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa2bbdc], eax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4ab0d8
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x694c54]
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa2bbd8], eax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x694c50]
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa2bbdc], eax
mov eax, dword [0xa2bbd8]
cmp eax, 0x200
jg 0x4ab108
mov eax, dword [0xa2bbdc]
cmp eax, 0x180
jg 0x4ab108
mov eax, dword [0xa2bbd8]
add eax, eax
mov dword [0xa2bbd8], eax
mov eax, dword [0xa2bbdc]
add eax, eax
mov dword [0xa2bbdc], eax
mov dword [0xa2bbe0], 0xffffffff
mov dword [0xa2bbe4], 0xffffffff
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa2bbd8], eax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa2bbdc], eax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4ab19e
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x694c54]
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa2bbd8], eax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x694c50]
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa2bbdc], eax
mov eax, dword [0xa2bbd8]
mov dword [0x6a5654], eax
mov eax, dword [0xa2bbdc]
mov dword [0x6a5658], eax
mov dword [0xa2bbe8], 0
mov dword [0x6a565c], 0
mov eax, dword [0x6a5638]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4ac34a
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x30]
mov dword [0xa2bbec], eax
mov eax, dword [0x694c54]
mov edx, dword [0xa2bbec]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa2bbf0], eax
mov eax, dword [0x694c50]
mov edx, dword [0xa2bbec]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa2bbf4], eax
mov eax, dword [0x6af3e0]
mov dword [0xa2bbf8], eax
mov dword [0xa2bbfc], 0
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
add eax, eax
mov dword [0xa2bbc0], eax
mov eax, dword [0xa2bbc0]
mov edx, eax
mov eax, dword [0x533560]
cmp edx, eax
je 0x4ab294
mov eax, dword [0x6af3e4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa2bbc0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x6af3e4], eax
mov eax, dword [0xa2bbc0]
mov dword [0x533560], eax
mov dword [0xa2bbf8], 0
mov eax, dword [0x533854]
test eax, eax
jne 0x4ab2ab
mov eax, dword [0xa2bbf8]
cmp eax, 1
je 0x4acd14
mov eax, dword [0xa2bbf8]
test eax, eax
jne 0x4ab2d6
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa2b160
call sub.msvcrt.dll_memcpy
jmp 0x4ab324
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa2b160
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4ab324
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa2b160
call sub.msvcrt.dll_memcpy
mov dword [0xa2bbf8], 0
mov eax, dword [0xa2bbf8]
test eax, eax
je 0x4ab35e
mov ecx, dword [0x533560]
mov eax, dword [0x6a5634]
mov edx, dword [eax + 0x40]
mov eax, dword [0x6af3e4]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4ab35e
mov dword [0xa2bbfc], 1
mov eax, dword [0x6af2cc]
and eax, 8
test eax, eax
je 0x4ab376
mov dword [0xa2bc00], 1
jmp 0x4ab380
mov dword [0xa2bc00], 0
mov eax, dword [0x6af2cc]
and eax, 8
test eax, eax
je 0x4ab398
mov dword [0xa2bc04], 1
jmp 0x4ab3a2
mov dword [0xa2bc04], 0
mov eax, dword [0x68fb4c]
test eax, eax
je 0x4ab46e
mov dword [esp + 8], 1
fld qword [0x563008]
fstp qword [esp]
call fcn.00472dbe
fld qword [0x562f90]
fdivp st(1)
fstp qword [0xa2bc08]
fld qword [0xa2bc08]
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 [0xa2bc10], eax
mov dword [0xa2bc14], edx
mov eax, dword [0xa2bc10]
mov edx, dword [0xa2bc14]
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 0x4ab431
mov dword [0xa2bc00], 1
jmp 0x4ab43b
mov dword [0xa2bc00], 0
mov eax, dword [0xa2bc10]
mov edx, dword [0xa2bc14]
mov esi, eax
and esi, 1
mov edi, edx
and edi, 0
mov eax, edi
or eax, esi
test eax, eax
je 0x4ab464
mov dword [0xa2bc04], 1
jmp 0x4ab46e
mov dword [0xa2bc04], 0
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x38]
cwde
sub eax, 1
mov dword [0xa2bc18], eax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x3a]
cwde
sub eax, 1
mov dword [0xa2bc1c], eax
mov eax, dword [0x6a5634]
movzx eax, byte [eax + 0x51]
cmp al, 2
jne 0x4ab4ce
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa2bc1c]
cmp edx, eax
jle 0x4ab4ce
mov eax, dword [0xa2bc1c]
add eax, 1
mov dword [0xa2bc1c], eax
mov dword [0xa2bc18], 0
mov eax, dword [0xa2bbf8]
test eax, eax
je 0x4ab531
mov edx, dword [0xa2bc04]
mov eax, dword [0xa2bc20]
cmp edx, eax
je 0x4ab4f0
mov dword [0xa2bbfc], 1
mov edx, dword [0xa2bc00]
mov eax, dword [0xa2bc24]
cmp edx, eax
je 0x4ab509
mov dword [0xa2bbfc], 1
mov edx, dword [0xa2bc18]
mov eax, dword [0x533874]
cmp edx, eax
jne 0x4ab527
mov edx, dword [0xa2bc1c]
mov eax, dword [0x533878]
cmp edx, eax
je 0x4ab531
mov dword [0xa2bbfc], 1
mov eax, dword [0xa2bbf8]
test eax, eax
jne 0x4ab544
mov dword [0xa2bbfc], 1
mov eax, dword [0xa2bbfc]
test eax, eax
je 0x4acd17
mov edx, dword [0x6a5654]
mov eax, dword [0x6a5658]
imul eax, edx
shl eax, 2
mov dword [0xa2bc28], eax
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov edx, dword [eax + 0xc]
mov eax, dword [0xa2bc28]
cmp edx, eax
jge 0x4ab5ce
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa2bbb4]
mov eax, dword [0xa2bc28]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x694af0
mov dword [edx], eax
mov edx, dword [0xa2bbb4]
mov eax, dword [0xa2bc28]
shl edx, 5
add edx, 0x694af0
mov dword [edx + 0xc], eax
mov edx, dword [0xa2bbb4]
mov eax, dword [0x6a5654]
shl edx, 5
add edx, 0x694af0
mov dword [edx + 4], eax
mov edx, dword [0xa2bbb4]
mov eax, dword [0x6a5658]
shl edx, 5
add edx, 0x694af0
mov dword [edx + 8], eax
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax]
mov dword [0x6a5638], eax
mov eax, dword [0xa2bbf8]
test eax, eax
je 0x4ab75c
mov dword [0xa2bc30], 0
mov dword [0xa2bc34], 0
mov dword [0xa2bc38], 0xffffffff
mov dword [0xa2bc3c], 0
jmp 0x4ab6d1
mov eax, dword [0xa2bc3c]
shl eax, 5
add eax, 0x694ae0
mov eax, dword [eax]
cmp eax, 4
je 0x4ab672
mov eax, dword [0xa2bc3c]
shl eax, 5
add eax, 0x694ae0
mov eax, dword [eax]
cmp eax, 3
jne 0x4ab6c4
mov eax, dword [0xa2bc3c]
shl eax, 5
add eax, 0x694ae0
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa2bc30]
mov edx, dword [0xa2bc34]
cmp ebx, edx
jl 0x4ab6c4
cmp ebx, edx
jg 0x4ab69c
cmp ecx, eax
jbe 0x4ab6c4
mov eax, dword [0xa2bc3c]
shl eax, 5
add eax, 0x694ae0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa2bc30], eax
mov dword [0xa2bc34], edx
mov eax, dword [0xa2bc3c]
mov dword [0xa2bc38], eax
mov eax, dword [0xa2bc3c]
add eax, 1
mov dword [0xa2bc3c], eax
mov eax, dword [0xa2bc3c]
cmp eax, 2
setle al
test al, al
jne 0x4ab64a
mov eax, dword [0xa2bc38]
cmp eax, 0xffffffff
je 0x4ab746
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov edx, dword [eax + 4]
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa2bc38]
shl eax, 5
add eax, 0x694af0
mov edx, dword [eax]
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4ab75c
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.00451637
mov dword [0xa2bbf8], 0
mov dword [0xa2bc40], 0
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x40]
mov dword [0xa2bc44], eax
mov eax, dword [0x6af3e4]
mov dword [0xa2bc48], eax
movzx eax, byte [0xa2bbb0]
test al, al
je 0x4ab78d
call fcn.004aadb2
mov dword [0xa2bc4c], 0
mov dword [0xa2bbdc], 0
jmp 0x4ac2d0
mov dword [0xa2bc50], 0
mov dword [0xa2bbd8], 0
jmp 0x4ac284
mov eax, dword [0xa2bc44]
movzx eax, byte [eax]
mov byte [0xa2bc54], al
mov eax, dword [0xa2bc44]
add eax, 1
mov dword [0xa2bc44], eax
mov eax, dword [0xa2bc44]
movzx eax, byte [eax]
mov byte [0xa2bc55], al
mov eax, dword [0xa2bc44]
add eax, 1
mov dword [0xa2bc44], eax
mov eax, dword [0xa2bc48]
movzx eax, byte [eax]
mov byte [0xa2bc56], al
mov eax, dword [0xa2bc48]
add eax, 1
mov dword [0xa2bc48], eax
mov eax, dword [0xa2bc48]
movzx eax, byte [eax]
mov byte [0xa2bc57], al
mov eax, dword [0xa2bc48]
add eax, 1
mov dword [0xa2bc48], eax
mov eax, dword [0xa2bbf8]
test eax, eax
je 0x4ab8f5
movzx edx, byte [0xa2bc54]
movzx eax, byte [0xa2bc56]
cmp dl, al
jne 0x4ab8f5
movzx edx, byte [0xa2bc55]
movzx eax, byte [0xa2bc57]
cmp dl, al
jne 0x4ab8f5
movzx eax, byte [0xa2bc55]
test al, al
jns 0x4ab87a
mov edx, dword [0xa2bc04]
mov eax, dword [0xa2bc20]
cmp edx, eax
jne 0x4ab8f1
mov edx, dword [0xa2bbd8]
mov eax, dword [0xa2bc18]
cmp edx, eax
jne 0x4ab8a7
mov edx, dword [0xa2bbdc]
mov eax, dword [0xa2bc1c]
cmp edx, eax
jne 0x4ab8a7
mov edx, dword [0xa2bc00]
mov eax, dword [0xa2bc24]
cmp edx, eax
jne 0x4ab8f4
mov edx, dword [0xa2bbd8]
mov eax, dword [0x533874]
cmp edx, eax
jne 0x4ac252
mov edx, dword [0xa2bbdc]
mov eax, dword [0x533878]
cmp edx, eax
jne 0x4ac252
mov edx, dword [0xa2bc18]
mov eax, dword [0x533874]
cmp edx, eax
jne 0x4ab8f5
mov edx, dword [0xa2bc1c]
mov eax, dword [0x533878]
cmp edx, eax
je 0x4ac252
jmp 0x4ab8f5
nop
jmp 0x4ab8f5
nop
mov eax, dword [0xa2bc48]
sub eax, 2
mov dword [0xa2bc48], eax
mov eax, dword [0xa2bc48]
movzx edx, byte [0xa2bc54]
mov byte [eax], dl
mov eax, dword [0xa2bc48]
add eax, 1
mov dword [0xa2bc48], eax
mov eax, dword [0xa2bc48]
movzx edx, byte [0xa2bc55]
mov byte [eax], dl
mov eax, dword [0xa2bc48]
add eax, 1
mov dword [0xa2bc48], eax
mov dword [0xa2bc58], 0
mov eax, dword [0xa2bbec]
cmp eax, 0x1f
jle 0x4aba0e
movzx eax, byte [0xa2bc54]
movzx eax, al
movzx eax, word [eax + eax + 0x5330c0]
movzx eax, ax
mov dword [0xa2bc5c], eax
mov dword [0xa2bc60], 1
mov eax, dword [0xa2bc64]
test eax, eax
je 0x4ab98a
mov eax, dword [0xa2bc64]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [0xa2bc60]
mov eax, dword [0x694c4c]
mov ecx, dword [0xa2bbec]
shl ecx, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x20], 0xa2bc78
mov dword [esp + 0x1c], 0xa2bc74
mov dword [esp + 0x18], 0xa2bc70
mov dword [esp + 0x14], 0xa2bc6c
mov dword [esp + 0x10], 0xa2bc68
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa2bc5c
mov dword [esp], eax
call fcn.00450b85
mov dword [0xa2bc7c], eax
mov eax, dword [0xa2bc68]
mov dword [0xa2bc64], eax
mov eax, dword [0xa2bc68]
mov dword [0xa2bc80], eax
mov dword [0xa2bc84], 0
jmp 0x4abb02
mov dword [0xa2bc84], 0
mov eax, dword [0xa2bbec]
cmp eax, 8
jne 0x4aba39
movzx eax, byte [0xa2bc54]
movzx eax, al
shl eax, 6
add eax, 0xa1dc00
mov dword [0xa2bc80], eax
mov eax, dword [0xa2bbec]
cmp eax, 0xe
jne 0x4aba5d
movzx eax, byte [0xa2bc54]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa21c00
mov dword [0xa2bc80], eax
mov eax, dword [0xa2bbec]
cmp eax, 0x10
jne 0x4aba7e
movzx eax, byte [0xa2bc54]
movzx eax, al
shl eax, 7
add eax, 0xa21c00
mov dword [0xa2bc80], eax
mov eax, dword [0xa2bbec]
cmp eax, 9
jne 0x4abaa9
movzx eax, byte [0xa2bc54]
movzx eax, al
shl eax, 6
add eax, 0xa1dc00
mov dword [0xa2bc80], eax
mov dword [0xa2bc58], 1
mov eax, dword [0xa2bbec]
cmp eax, 0xf
jne 0x4abad7
movzx eax, byte [0xa2bc54]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa21c00
mov dword [0xa2bc80], eax
mov dword [0xa2bc58], 1
mov eax, dword [0xa2bbec]
cmp eax, 0x11
jne 0x4abb02
movzx eax, byte [0xa2bc54]
movzx eax, al
shl eax, 7
add eax, 0xa21c00
mov dword [0xa2bc80], eax
mov dword [0xa2bc58], 1
movzx eax, byte [0xa2bc55]
and eax, 0xf
mov byte [0xa2bc88], al
mov eax, dword [0x533650]
test eax, eax
je 0x4abb43
movzx eax, byte [0xa2bc55]
movzx eax, al
sar eax, 4
and eax, 7
mov byte [0xa2bc89], al
movzx eax, byte [0xa2bc55]
movzx eax, al
sar eax, 7
mov byte [0xa2bc8a], al
jmp 0x4abb55
movzx eax, byte [0xa2bc55]
movzx eax, al
sar eax, 4
mov byte [0xa2bc89], al
movzx eax, byte [0xa2bc8a]
test al, al
je 0x4abb7e
mov eax, dword [0xa2bc04]
test eax, eax
je 0x4abb7e
mov eax, dword [0x533650]
test eax, eax
je 0x4abb7e
movzx eax, byte [0xa2bc89]
mov byte [0xa2bc88], al
movzx eax, byte [0xa2bc88]
movzx eax, al
mov eax, dword [eax*4 + 0xa2b160]
mov dword [0xa2bc38], eax
movzx eax, byte [0xa2bc89]
movzx eax, al
mov eax, dword [eax*4 + 0xa2b160]
mov dword [0xa2bc3c], eax
mov eax, dword [0x6a5638]
mov ecx, dword [0xa2bc4c]
mov edx, dword [0x6a5654]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa2bc40]
add ecx, edx
mov edx, dword [0xa2bc50]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2bc8c], eax
mov edx, dword [0x6a5654]
mov ecx, dword [0x694c54]
mov eax, dword [0x6a5634]
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 [0xa2bbe8], eax
mov dword [0xa2bc90], 0
jmp 0x4abcdf
mov dword [0xa2bc94], 0
jmp 0x4abc93
mov eax, dword [0xa2bc80]
movzx eax, byte [eax]
test al, al
je 0x4abc36
mov eax, dword [0xa2bc8c]
mov edx, dword [0xa2bc38]
mov dword [eax], edx
jmp 0x4abc43
mov eax, dword [0xa2bc8c]
mov edx, dword [0xa2bc3c]
mov dword [eax], edx
mov eax, dword [0xa2bc58]
test eax, eax
je 0x4abc6c
mov edx, dword [0xa2bc94]
mov eax, dword [0xa2bc58]
and eax, edx
test eax, eax
je 0x4abc79
mov eax, dword [0xa2bc80]
add eax, 1
mov dword [0xa2bc80], eax
jmp 0x4abc79
mov eax, dword [0xa2bc80]
add eax, 1
mov dword [0xa2bc80], eax
mov eax, dword [0xa2bc8c]
add eax, 4
mov dword [0xa2bc8c], eax
mov eax, dword [0xa2bc94]
add eax, 1
mov dword [0xa2bc94], eax
mov edx, dword [0xa2bc94]
mov eax, dword [0xa2bbf0]
cmp edx, eax
setl al
test al, al
jne 0x4abc1b
mov eax, dword [0xa2bc8c]
mov edx, dword [0xa2bbe8]
shl edx, 2
add eax, edx
mov dword [0xa2bc8c], eax
mov edx, dword [0xa2bc80]
mov eax, dword [0xa2bc84]
add eax, edx
mov dword [0xa2bc80], eax
mov eax, dword [0xa2bc90]
add eax, 1
mov dword [0xa2bc90], eax
mov edx, dword [0xa2bc90]
mov eax, dword [0xa2bbf4]
cmp edx, eax
setl al
test al, al
jne 0x4abc0f
mov eax, dword [0x6a5634]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x4ac256
mov eax, dword [0xa2bc00]
test eax, eax
je 0x4ac256
mov edx, dword [0xa2bc18]
mov eax, dword [0xa2bbd8]
cmp edx, eax
jne 0x4ac256
mov edx, dword [0xa2bc1c]
mov eax, dword [0xa2bbdc]
cmp edx, eax
jne 0x4ac256
mov eax, dword [0x6a5634]
movzx eax, byte [eax + 0x3d]
movzx eax, al
mov dword [0xa2bc98], eax
mov eax, dword [0x6a5634]
movzx eax, byte [eax + 0x3e]
movzx eax, al
mov dword [0xa2bc9c], eax
mov byte [0xa2bca0], 0
mov byte [0xa2bca1], 0
mov byte [0xa2bca2], 0
mov byte [0xa2bca3], 0
mov eax, dword [0xa2bc9c]
test eax, eax
jne 0x4abd9b
mov eax, dword [0xa2bc98]
test eax, eax
jne 0x4ac255
mov byte [0xa2bca2], 1
jmp 0x4abef9
mov edx, dword [0xa2bc9c]
mov eax, dword [0xa2bc98]
cmp edx, eax
jge 0x4abdc0
mov eax, dword [0xa2bc9c]
mov byte [0xa2bca3], al
mov byte [0xa2bca2], 0xff
jmp 0x4abef9
mov edx, dword [0xa2bc98]
mov eax, dword [0xa2bc9c]
cmp edx, eax
jne 0x4abe02
mov eax, dword [0xa2bc98]
cmp eax, 3
jg 0x4abdef
mov eax, dword [0xa2bc98]
mov byte [0xa2bca3], al
mov byte [0xa2bca2], 1
jmp 0x4abef9
mov byte [0xa2bca0], 1
mov byte [0xa2bca2], 1
jmp 0x4abef9
mov eax, dword [0xa2bc98]
cmp eax, 2
jle 0x4abe6a
mov edx, dword [0xa2bc9c]
mov eax, dword [0xa2bc98]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x4abe35
mov byte [0xa2bca0], 1
mov byte [0xa2bca2], 2
jmp 0x4abef9
mov edx, dword [0xa2bc9c]
mov eax, dword [0xa2bc98]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x4abe5e
mov byte [0xa2bca0], 1
mov byte [0xa2bca2], 3
jmp 0x4abef9
mov byte [0xa2bca1], 1
jmp 0x4abef9
mov eax, dword [0xa2bc98]
cmp eax, 1
jg 0x4abeb7
mov eax, dword [0xa2bc9c]
cmp eax, 3
jg 0x4abea4
mov eax, dword [0xa2bc98]
mov byte [0xa2bca3], al
mov eax, dword [0xa2bc9c]
mov edx, eax
mov eax, dword [0xa2bc98]
mov ebx, edx
sub ebx, eax
mov eax, ebx
add eax, 1
mov byte [0xa2bca2], al
jmp 0x4abef9
mov eax, dword [0xa2bc98]
mov byte [0xa2bca3], al
mov byte [0xa2bca2], 0xff
jmp 0x4abef9
mov eax, dword [0xa2bc9c]
cmp eax, 3
jne 0x4abed1
mov byte [0xa2bca3], 2
mov byte [0xa2bca2], 2
jmp 0x4abef9
mov eax, dword [0xa2bc9c]
cmp eax, 4
jne 0x4abeeb
mov byte [0xa2bca0], 1
mov byte [0xa2bca2], 3
jmp 0x4abef9
mov byte [0xa2bca3], 2
mov byte [0xa2bca2], 0xff
mov edx, dword [0x694c54]
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa2bca4], eax
mov edx, dword [0x694c50]
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa2bca8], eax
movzx eax, byte [0xa2bca1]
test al, al
je 0x4ac030
mov eax, dword [0xa2bca8]
sub eax, 1
mov dword [0xa2bc90], eax
mov eax, dword [0xa2bca8]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov byte [0xa2bca2], al
movzx eax, byte [0xa2bc55]
and eax, 0xf
mov byte [0xa2bc88], al
movzx eax, byte [0xa2bc88]
movzx eax, al
mov eax, dword [eax*4 + 0xa2b160]
mov dword [0xa2bc38], eax
mov eax, dword [0x6a5638]
mov ecx, dword [0xa2bc4c]
mov edx, dword [0xa2bc90]
add ecx, edx
mov edx, dword [0x6a5654]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa2bc40]
add ecx, edx
mov edx, dword [0xa2bc50]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2bc8c], eax
mov dword [0xa2bc94], 0
jmp 0x4abfec
mov eax, dword [0xa2bc8c]
mov edx, dword [0xa2bc38]
mov dword [eax], edx
mov eax, dword [0xa2bc8c]
add eax, 4
mov dword [0xa2bc8c], eax
mov eax, dword [0xa2bc94]
add eax, 1
mov dword [0xa2bc94], eax
mov edx, dword [0xa2bc94]
mov eax, dword [0xa2bca4]
cmp edx, eax
setl al
test al, al
jne 0x4abfc5
mov eax, dword [0xa2bc90]
sub eax, 1
mov dword [0xa2bc90], eax
movzx eax, byte [0xa2bca2]
sub eax, 1
mov byte [0xa2bca2], al
movzx eax, byte [0xa2bca2]
test al, al
je 0x4ac256
jmp 0x4abf81
movzx eax, byte [0xa2bca0]
test al, al
je 0x4ac134
mov eax, dword [0xa2bca8]
sub eax, 1
mov dword [0xa2bc90], eax
mov eax, dword [0xa2bc90]
cmp eax, 0xf
jne 0x4ac060
mov dword [0xa2bc90], 0xe
movzx eax, byte [0xa2bc55]
and eax, 0xf
mov byte [0xa2bc88], al
movzx eax, byte [0xa2bc88]
movzx eax, al
mov eax, dword [eax*4 + 0xa2b160]
mov dword [0xa2bc38], eax
mov eax, dword [0x6a5638]
mov ecx, dword [0xa2bc4c]
mov edx, dword [0xa2bc90]
add ecx, edx
mov edx, dword [0x6a5654]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa2bc40]
add ecx, edx
mov edx, dword [0xa2bc50]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2bc8c], eax
mov dword [0xa2bc94], 0
jmp 0x4ac0f0
mov eax, dword [0xa2bc8c]
mov edx, dword [0xa2bc38]
mov dword [eax], edx
mov eax, dword [0xa2bc8c]
add eax, 4
mov dword [0xa2bc8c], eax
mov eax, dword [0xa2bc94]
add eax, 1
mov dword [0xa2bc94], eax
mov edx, dword [0xa2bc94]
mov eax, dword [0xa2bca4]
cmp edx, eax
setl al
test al, al
jne 0x4ac0c9
mov eax, dword [0xa2bc90]
sub eax, 1
mov dword [0xa2bc90], eax
movzx eax, byte [0xa2bca2]
sub eax, 1
mov byte [0xa2bca2], al
movzx eax, byte [0xa2bca2]
test al, al
je 0x4ac256
jmp 0x4ac085
movzx eax, byte [0xa2bca3]
movzx edx, al
mov eax, dword [0xa2bca8]
cmp edx, eax
jge 0x4ac256
movzx eax, byte [0xa2bca3]
movzx eax, al
mov dword [0xa2bc90], eax
movzx eax, byte [0xa2bc55]
and eax, 0xf
mov byte [0xa2bc88], al
movzx eax, byte [0xa2bc88]
movzx eax, al
mov eax, dword [eax*4 + 0xa2b160]
mov dword [0xa2bc38], eax
movzx eax, byte [0xa2bca2]
cmp al, 0xff
jne 0x4ac1a6
mov eax, dword [0xa2bca8]
mov edx, eax
movzx eax, byte [0xa2bca3]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov byte [0xa2bca2], al
jmp 0x4ac1a6
nop
mov eax, dword [0x6a5638]
mov ecx, dword [0xa2bc4c]
mov edx, dword [0xa2bc90]
add ecx, edx
mov edx, dword [0x6a5654]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa2bc40]
add ecx, edx
mov edx, dword [0xa2bc50]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2bc8c], eax
mov dword [0xa2bc94], 0
jmp 0x4ac211
mov eax, dword [0xa2bc8c]
mov edx, dword [0xa2bc38]
mov dword [eax], edx
mov eax, dword [0xa2bc8c]
add eax, 4
mov dword [0xa2bc8c], eax
mov eax, dword [0xa2bc94]
add eax, 1
mov dword [0xa2bc94], eax
mov edx, dword [0xa2bc94]
mov eax, dword [0xa2bca4]
cmp edx, eax
setl al
test al, al
jne 0x4ac1ea
mov eax, dword [0xa2bc90]
add eax, 1
mov dword [0xa2bc90], eax
movzx eax, byte [0xa2bca2]
sub eax, 1
mov byte [0xa2bca2], al
movzx eax, byte [0xa2bca2]
test al, al
jne 0x4ac1a5
jmp 0x4ac256
nop
jmp 0x4ac256
nop
mov edx, dword [0x694c54]
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa2bc50]
add eax, edx
mov dword [0xa2bc50], eax
mov eax, dword [0xa2bbd8]
add eax, 1
mov dword [0xa2bbd8], eax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0xa2bbd8]
cmp edx, eax
setg al
test al, al
jne 0x4ab7bf
mov edx, dword [0x694c50]
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa2bc4c]
add eax, edx
mov dword [0xa2bc4c], eax
mov eax, dword [0xa2bbdc]
add eax, 1
mov dword [0xa2bbdc], eax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov eax, dword [0xa2bbdc]
cmp edx, eax
setg al
test al, al
jne 0x4ab7a6
mov eax, dword [0xa2bc04]
mov dword [0xa2bc20], eax
mov eax, dword [0xa2bc00]
mov dword [0xa2bc24], eax
mov eax, dword [0xa2bc18]
mov dword [0x533874], eax
mov eax, dword [0xa2bc1c]
mov dword [0x533878], eax
mov dword [0x6af3e0], 1
movzx eax, byte [0xa2bbb0]
test al, al
je 0x4ac330
call fcn.004aadb2
mov eax, dword [0xa2bbb4]
mov edx, eax
sar edx, 0x1f
mov dword [0xa2bcb0], eax
mov dword [0xa2bcb4], edx
jmp 0x4acb25
mov eax, dword [0x6a5634]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x4ac7a4
movzx eax, byte [0xa2bbb0]
test al, al
jne 0x4ac4fb
mov dword [0xa2bcb8], 0
mov dword [0xa2bcbc], 0
mov dword [0xa2bc38], 0xffffffff
mov dword [0xa2bc3c], 0
jmp 0x4ac41e
mov eax, dword [0xa2bc3c]
shl eax, 5
add eax, 0x694ae0
mov eax, dword [eax]
cmp eax, 4
je 0x4ac3bf
mov eax, dword [0xa2bc3c]
shl eax, 5
add eax, 0x694ae0
mov eax, dword [eax]
cmp eax, 3
jne 0x4ac411
mov eax, dword [0xa2bc3c]
shl eax, 5
add eax, 0x694ae0
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa2bcb8]
mov edx, dword [0xa2bcbc]
cmp ebx, edx
jl 0x4ac411
cmp ebx, edx
jg 0x4ac3e9
cmp ecx, eax
jbe 0x4ac411
mov eax, dword [0xa2bc3c]
shl eax, 5
add eax, 0x694ae0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa2bcb8], eax
mov dword [0xa2bcbc], edx
mov eax, dword [0xa2bc3c]
mov dword [0xa2bc38], eax
mov eax, dword [0xa2bc3c]
add eax, 1
mov dword [0xa2bc3c], eax
mov eax, dword [0xa2bc3c]
cmp eax, 2
setle al
test al, al
jne 0x4ac397
mov eax, dword [0x694a5c]
test eax, eax
jne 0x4ac5cf
mov eax, dword [0xa2bc38]
cmp eax, 0xffffffff
je 0x4ac5d6
mov eax, dword [0x6af3e0]
test eax, eax
je 0x4ac5d2
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa2bbc0], eax
mov eax, dword [0xa2bc38]
shl eax, 5
add eax, 0x694af0
mov edx, dword [eax + 4]
mov eax, dword [0xa2bc38]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax + 8]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [0xa2bbc0]
cmp edx, eax
jne 0x4ac5d5
mov eax, dword [0x533854]
test eax, eax
je 0x4acd1a
mov eax, dword [0xa2bbc0]
mov ecx, eax
mov eax, dword [0x6a5634]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2bc38]
shl eax, 5
add eax, 0x694af0
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 0x4acd1d
jmp 0x4ac5d6
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa2bbc0], eax
mov edx, dword [0xa2bbc0]
mov eax, dword [0x53386c]
cmp edx, eax
je 0x4ac558
mov eax, dword [0xa2b154]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa2bbc0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa2b154], eax
mov eax, dword [0xa2bbc0]
mov dword [0x53386c], eax
jmp 0x4ac5a9
mov eax, dword [0x694a5c]
test eax, eax
jne 0x4ac5a5
mov eax, dword [0x533854]
test eax, eax
je 0x4acd20
mov eax, dword [0xa2bbc0]
mov ecx, eax
mov eax, dword [0x6a5634]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2b154]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4ac5a8
mov eax, dword [0x6af3e0]
test eax, eax
jne 0x4acd23
jmp 0x4ac5a9
nop
jmp 0x4ac5a9
nop
mov eax, dword [0xa2bbc0]
mov ecx, eax
mov eax, dword [0x6a5634]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2b154]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4ac5d6
nop
jmp 0x4ac5d6
nop
jmp 0x4ac5d6
nop
mov edx, dword [0x6a5654]
mov eax, dword [0x6a5658]
imul eax, edx
shl eax, 2
mov dword [0xa2bcc0], eax
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov edx, dword [eax + 0xc]
mov eax, dword [0xa2bcc0]
cmp edx, eax
jge 0x4ac653
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa2bbb4]
mov eax, dword [0xa2bcc0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x694af0
mov dword [edx], eax
mov edx, dword [0xa2bbb4]
mov eax, dword [0xa2bcc0]
shl edx, 5
add edx, 0x694af0
mov dword [edx + 0xc], eax
mov edx, dword [0xa2bbb4]
mov eax, dword [0x6a5654]
shl edx, 5
add edx, 0x694af0
mov dword [edx + 4], eax
mov edx, dword [0xa2bbb4]
mov eax, dword [0x6a5658]
shl edx, 5
add edx, 0x694af0
mov dword [edx + 8], eax
movzx eax, byte [0xa2bbb0]
test al, al
jne 0x4ac6e0
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov edx, dword [eax + 4]
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0x6a5634]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4acb21
mov eax, dword [0xa2b154]
mov dword [0xa2bcc4], eax
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax]
mov dword [0xa2bcc8], eax
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov edx, dword [eax + 4]
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax + 8]
imul eax, edx
mov dword [0xa2bccc], eax
mov eax, dword [0xa2bccc]
test eax, eax
jle 0x4acb21
jmp 0x4ac789
mov eax, dword [0xa2bcc4]
mov edx, dword [eax]
mov dword [0xa2bcd0], edx
add eax, 4
mov dword [0xa2bcc4], eax
mov eax, dword [0xa2bcc8]
mov edx, dword [0xa2bcd0]
mov ecx, edx
and ecx, 0xff00ff00
mov edx, dword [0xa2bcd0]
and edx, 0xff0000
shr edx, 0x10
or ecx, edx
mov edx, dword [0xa2bcd0]
and edx, 0xff
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
add eax, 4
mov dword [0xa2bcc8], eax
mov eax, dword [0xa2bccc]
test eax, eax
setne dl
sub eax, 1
mov dword [0xa2bccc], eax
test dl, dl
jne 0x4ac735
jmp 0x4acb21
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x4ac845
call fcn.00450bb3
and eax, 0x200
mov dword [0xa2bc38], eax
mov eax, dword [0xa2bc38]
test eax, eax
je 0x4ac7d9
mov dword [0xa2bc38], 1
mov dword [0xa2bbc0], 0
jmp 0x4ac836
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x48]
mov edx, dword [0xa2bbc0]
shl edx, 2
lea ecx, [eax + edx]
mov edx, dword [0xa2bc38]
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x48]
mov ebx, dword [0xa2bbc0]
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 + 0xa1dba0]
mov dword [ecx], eax
mov eax, dword [0xa2bbc0]
add eax, 1
mov dword [0xa2bbc0], eax
mov eax, dword [0xa2bbc0]
cmp eax, 3
setle al
test al, al
jne 0x4ac7e5
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
mov dword [0xa2bbc0], eax
mov eax, dword [0x6a5634]
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 [0xa2bc38], eax
mov edx, dword [0xa2bbc0]
mov eax, dword [0x53386c]
cmp edx, eax
je 0x4ac8bd
mov eax, dword [0xa2b154]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa2bbc0]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa2b154], eax
mov eax, dword [0xa2bbc0]
mov dword [0x53386c], eax
jmp 0x4ac93b
mov eax, dword [0x694a5c]
test eax, eax
jne 0x4ac934
mov eax, dword [0x533854]
test eax, eax
je 0x4acd26
mov eax, dword [0xa2bbc0]
mov ecx, eax
mov eax, dword [0x6a5634]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2b154]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4ac937
mov eax, dword [0xa2bc38]
shl eax, 2
mov edx, eax
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa2b160
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4ac93a
mov eax, dword [0x6af3e0]
test eax, eax
jne 0x4acd29
jmp 0x4ac93b
nop
jmp 0x4ac93b
nop
jmp 0x4ac93b
nop
mov edx, dword [0x6a5654]
mov eax, dword [0x6a5658]
imul eax, edx
shl eax, 2
mov dword [0xa2bcd4], eax
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov edx, dword [eax + 0xc]
mov eax, dword [0xa2bcd4]
cmp edx, eax
jge 0x4ac9b8
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa2bbb4]
mov eax, dword [0xa2bcd4]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x694af0
mov dword [edx], eax
mov edx, dword [0xa2bbb4]
mov eax, dword [0xa2bcd4]
shl edx, 5
add edx, 0x694af0
mov dword [edx + 0xc], eax
mov edx, dword [0xa2bbb4]
mov eax, dword [0x6a5654]
shl edx, 5
add edx, 0x694af0
mov dword [edx + 4], eax
mov edx, dword [0xa2bbb4]
mov eax, dword [0x6a5658]
shl edx, 5
add edx, 0x694af0
mov dword [edx + 8], eax
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax]
mov dword [0x6a5638], eax
mov eax, dword [0xa2bbc0]
mov ecx, eax
mov eax, dword [0x6a5634]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2b154]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa2bc38]
shl eax, 2
mov edx, eax
mov eax, dword [0x6a5634]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa2b160
call sub.msvcrt.dll_memcpy
movzx eax, byte [0xa2bbb0]
test al, al
je 0x4aca54
call fcn.004aadb2
mov eax, dword [0xa2b154]
mov dword [0xa2bcd8], eax
mov eax, dword [0x6a5638]
mov dword [0xa2bcdc], eax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa2bc50], eax
mov eax, dword [0x6a5634]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa2bc4c], eax
mov dword [0xa2bbdc], 0
jmp 0x4acafb
mov dword [0xa2bbd8], 0
jmp 0x4acada
mov edx, dword [0xa2bcdc]
mov eax, dword [0xa2bcd8]
movzx ecx, byte [eax]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0xa2b160]
mov dword [edx], ecx
add edx, 4
mov dword [0xa2bcdc], edx
add eax, 1
mov dword [0xa2bcd8], eax
mov eax, dword [0xa2bbd8]
add eax, 1
mov dword [0xa2bbd8], eax
mov edx, dword [0xa2bbd8]
mov eax, dword [0xa2bc50]
cmp edx, eax
setl al
test al, al
jne 0x4acaa2
mov eax, dword [0xa2bbdc]
add eax, 1
mov dword [0xa2bbdc], eax
mov edx, dword [0xa2bbdc]
mov eax, dword [0xa2bc4c]
cmp edx, eax
setl al
test al, al
jne 0x4aca96
movzx eax, byte [0xa2bbb0]
test al, al
je 0x4acb24
call fcn.004aadb2
jmp 0x4acb24
nop
jmp 0x4acb25
nop
mov dword [0x694a5c], 0
mov dword [0x6af3e0], 1
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694ae0
mov dword [eax], 3
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694ae0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x694b48], eax
mov dword [0x694b4c], edx
mov eax, dword [0x68fb4c]
test eax, eax
je 0x4acd2a
mov eax, dword [0x694bc0]
test eax, eax
je 0x4acd2a
mov eax, dword [0xa2bce0]
test eax, eax
jne 0x4acbd3
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 [0xa2bce0], eax
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax + 4]
mov dword [0xa2bce4], eax
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov eax, dword [eax + 8]
mov dword [0xa2bce8], eax
mov eax, dword [0xa2bcec]
add eax, 1
mov dword [0xa2bcec], eax
mov eax, dword [0xa2bcec]
mov dword [0xa2bcf0], eax
mov eax, dword [0xa2bce4]
mov dword [0xa2bcf4], eax
mov eax, dword [0xa2bce8]
mov dword [0xa2bcf8], eax
mov eax, dword [0xa2bce0]
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 [0xa2bce4]
mov eax, dword [0xa2bce8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694af0
mov edx, dword [eax]
mov eax, dword [0xa2bce0]
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 [0xa2bce0]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call eax
sub esp, 4
mov eax, dword [0xa2bce0]
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 [0xa2bce0]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0xa2bcf0
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x4acd2a
nop
jmp 0x4acd2a
nop
jmp 0x4acd2a
nop
jmp 0x4acd2a
nop
jmp 0x4acd2a
nop
jmp 0x4acd2a
nop
jmp 0x4acd2a
nop
jmp 0x4acd2a
nop
jmp 0x4acd2a
nop
jmp 0x4acd2a
nop
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694ae0
mov eax, dword [eax]
cmp eax, 2
jne 0x4acd6f
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694ae0
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x694b48], eax
mov dword [0x694b4c], edx
mov eax, dword [0xa2bbb4]
shl eax, 5
add eax, 0x694ae0
mov dword [eax], 1
mov eax, dword [0x6af3f4]
cmp eax, 1
jne 0x4acd94
mov dword [0x6af3f4], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x5332d8]
cmp eax, 0xffffffff
jne 0x4acda8
mov dword [0x5332d8], 0
mov dword [0xa2b100], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret