Function at 0x4ad1b6
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov byte [0xa2dbf0], 0
mov eax, dword [0x691b4c]
test eax, eax
je 0x4ad1d6
mov byte [0xa2dbf0], 1
mov eax, dword [0x6b1434]
cmp eax, 1
jne 0x4ad1fb
mov dword [0x6b1434], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x691b4c]
test eax, eax
jne 0x4ad21c
mov eax, dword [0x696c84]
test eax, eax
je 0x4ad21c
mov dword [0xa2d140], 1
jmp 0x4af13b
mov eax, dword [0x6b1434]
test eax, eax
jne 0x4af0f7
mov dword [0xa2dbf4], 0xffffffff
mov eax, dword [0x5350a0]
mov edx, dword [0x5350a4]
mov dword [0xa2dbf8], eax
mov dword [0xa2dbfc], edx
mov dword [0xa2dc00], 0
jmp 0x4ad2c8
mov eax, dword [0xa2dc00]
shl eax, 5
add eax, 0x696b20
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa2dbf8]
mov edx, dword [0xa2dbfc]
cmp ebx, edx
jg 0x4ad2bb
cmp ebx, edx
jl 0x4ad27f
cmp ecx, eax
jae 0x4ad2bb
mov eax, dword [0xa2dc00]
shl eax, 5
add eax, 0x696b20
mov eax, dword [eax]
cmp eax, 3
jne 0x4ad2bb
mov eax, dword [0xa2dc00]
shl eax, 5
add eax, 0x696b20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa2dbf8], eax
mov dword [0xa2dbfc], edx
mov eax, dword [0xa2dc00]
mov dword [0xa2dbf4], eax
mov eax, dword [0xa2dc00]
add eax, 1
mov dword [0xa2dc00], eax
mov eax, dword [0xa2dc00]
cmp eax, 2
setle al
test al, al
jne 0x4ad255
mov dword [0xa2dc00], 0
jmp 0x4ad312
mov eax, dword [0xa2dc00]
shl eax, 5
add eax, 0x696b20
mov eax, dword [eax]
cmp eax, 1
jne 0x4ad305
mov eax, dword [0xa2dc00]
mov dword [0xa2dbf4], eax
mov eax, dword [0xa2dc00]
add eax, 1
mov dword [0xa2dc00], eax
mov eax, dword [0xa2dc00]
cmp eax, 2
setle al
test al, al
jne 0x4ad2e7
mov eax, dword [0xa2dbf4]
cmp eax, 0xffffffff
jne 0x4ad33c
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.004539bf
jmp 0x4af13b
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b20
mov dword [eax], 2
mov ecx, dword [0xa2dbf4]
mov eax, dword [0x5350a0]
mov edx, dword [0x5350a4]
shl ecx, 5
add ecx, 0x696b20
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add eax, 1
adc edx, 0
mov dword [0x5350a0], eax
mov dword [0x5350a4], edx
mov eax, dword [0x691b4c]
test eax, eax
je 0x4ad3d1
mov dword [esp + 8], 1
fld qword [0x565028]
fstp qword [esp]
call fcn.00475146
fstp qword [0xa2dc08]
fld qword [0xa2dc10]
fld qword [0xa2dc08]
fsubp st(1)
fabs
fld qword [0x5651b0]
fucompi st(1)
fstp st(0)
ja 0x4af096
fld qword [0xa2dc08]
fstp qword [0xa2dc10]
mov eax, dword [0x6a7674]
test eax, eax
je 0x4af099
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa2dc18], eax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa2dc1c], eax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4ad460
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x696c94]
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa2dc18], eax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x696c90]
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa2dc1c], eax
mov eax, dword [0xa2dc18]
cmp eax, 0x200
jg 0x4ad490
mov eax, dword [0xa2dc1c]
cmp eax, 0x180
jg 0x4ad490
mov eax, dword [0xa2dc18]
add eax, eax
mov dword [0xa2dc18], eax
mov eax, dword [0xa2dc1c]
add eax, eax
mov dword [0xa2dc1c], eax
mov dword [0xa2dc20], 0xffffffff
mov dword [0xa2dc24], 0xffffffff
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa2dc18], eax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa2dc1c], eax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4ad526
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x696c94]
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa2dc18], eax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x696c90]
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa2dc1c], eax
mov eax, dword [0xa2dc18]
mov dword [0x6a7694], eax
mov eax, dword [0xa2dc1c]
mov dword [0x6a7698], eax
mov dword [0xa2dc28], 0
mov dword [0x6a769c], 0
mov eax, dword [0x6a7678]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4ae6d2
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x30]
mov dword [0xa2dc2c], eax
mov eax, dword [0x696c94]
mov edx, dword [0xa2dc2c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa2dc30], eax
mov eax, dword [0x696c90]
mov edx, dword [0xa2dc2c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa2dc34], eax
mov eax, dword [0x6b1420]
mov dword [0xa2dc38], eax
mov dword [0xa2dc3c], 0
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
add eax, eax
mov dword [0xa2dc00], eax
mov eax, dword [0xa2dc00]
mov edx, eax
mov eax, dword [0x535560]
cmp edx, eax
je 0x4ad61c
mov eax, dword [0x6b1424]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa2dc00]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x6b1424], eax
mov eax, dword [0xa2dc00]
mov dword [0x535560], eax
mov dword [0xa2dc38], 0
mov eax, dword [0x535854]
test eax, eax
jne 0x4ad633
mov eax, dword [0xa2dc38]
cmp eax, 1
je 0x4af09c
mov eax, dword [0xa2dc38]
test eax, eax
jne 0x4ad65e
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa2d1a0
call sub.msvcrt.dll_memcpy
jmp 0x4ad6ac
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa2d1a0
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4ad6ac
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa2d1a0
call sub.msvcrt.dll_memcpy
mov dword [0xa2dc38], 0
mov eax, dword [0xa2dc38]
test eax, eax
je 0x4ad6e6
mov ecx, dword [0x535560]
mov eax, dword [0x6a7674]
mov edx, dword [eax + 0x40]
mov eax, dword [0x6b1424]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4ad6e6
mov dword [0xa2dc3c], 1
mov eax, dword [0x6b130c]
and eax, 8
test eax, eax
je 0x4ad6fe
mov dword [0xa2dc40], 1
jmp 0x4ad708
mov dword [0xa2dc40], 0
mov eax, dword [0x6b130c]
and eax, 8
test eax, eax
je 0x4ad720
mov dword [0xa2dc44], 1
jmp 0x4ad72a
mov dword [0xa2dc44], 0
mov eax, dword [0x691b4c]
test eax, eax
je 0x4ad7f6
mov dword [esp + 8], 1
fld qword [0x565028]
fstp qword [esp]
call fcn.00475146
fld qword [0x564fb0]
fdivp st(1)
fstp qword [0xa2dc48]
fld qword [0xa2dc48]
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 [0xa2dc50], eax
mov dword [0xa2dc54], edx
mov eax, dword [0xa2dc50]
mov edx, dword [0xa2dc54]
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 0x4ad7b9
mov dword [0xa2dc40], 1
jmp 0x4ad7c3
mov dword [0xa2dc40], 0
mov eax, dword [0xa2dc50]
mov edx, dword [0xa2dc54]
mov esi, eax
and esi, 1
mov edi, edx
and edi, 0
mov eax, edi
or eax, esi
test eax, eax
je 0x4ad7ec
mov dword [0xa2dc44], 1
jmp 0x4ad7f6
mov dword [0xa2dc44], 0
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x38]
cwde
sub eax, 1
mov dword [0xa2dc58], eax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x3a]
cwde
sub eax, 1
mov dword [0xa2dc5c], eax
mov eax, dword [0x6a7674]
movzx eax, byte [eax + 0x51]
cmp al, 2
jne 0x4ad856
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa2dc5c]
cmp edx, eax
jle 0x4ad856
mov eax, dword [0xa2dc5c]
add eax, 1
mov dword [0xa2dc5c], eax
mov dword [0xa2dc58], 0
mov eax, dword [0xa2dc38]
test eax, eax
je 0x4ad8b9
mov edx, dword [0xa2dc44]
mov eax, dword [0xa2dc60]
cmp edx, eax
je 0x4ad878
mov dword [0xa2dc3c], 1
mov edx, dword [0xa2dc40]
mov eax, dword [0xa2dc64]
cmp edx, eax
je 0x4ad891
mov dword [0xa2dc3c], 1
mov edx, dword [0xa2dc58]
mov eax, dword [0x535874]
cmp edx, eax
jne 0x4ad8af
mov edx, dword [0xa2dc5c]
mov eax, dword [0x535878]
cmp edx, eax
je 0x4ad8b9
mov dword [0xa2dc3c], 1
mov eax, dword [0xa2dc38]
test eax, eax
jne 0x4ad8cc
mov dword [0xa2dc3c], 1
mov eax, dword [0xa2dc3c]
test eax, eax
je 0x4af09f
mov edx, dword [0x6a7694]
mov eax, dword [0x6a7698]
imul eax, edx
shl eax, 2
mov dword [0xa2dc68], eax
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov edx, dword [eax + 0xc]
mov eax, dword [0xa2dc68]
cmp edx, eax
jge 0x4ad956
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa2dbf4]
mov eax, dword [0xa2dc68]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x696b30
mov dword [edx], eax
mov edx, dword [0xa2dbf4]
mov eax, dword [0xa2dc68]
shl edx, 5
add edx, 0x696b30
mov dword [edx + 0xc], eax
mov edx, dword [0xa2dbf4]
mov eax, dword [0x6a7694]
shl edx, 5
add edx, 0x696b30
mov dword [edx + 4], eax
mov edx, dword [0xa2dbf4]
mov eax, dword [0x6a7698]
shl edx, 5
add edx, 0x696b30
mov dword [edx + 8], eax
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax]
mov dword [0x6a7678], eax
mov eax, dword [0xa2dc38]
test eax, eax
je 0x4adae4
mov dword [0xa2dc70], 0
mov dword [0xa2dc74], 0
mov dword [0xa2dc78], 0xffffffff
mov dword [0xa2dc7c], 0
jmp 0x4ada59
mov eax, dword [0xa2dc7c]
shl eax, 5
add eax, 0x696b20
mov eax, dword [eax]
cmp eax, 4
je 0x4ad9fa
mov eax, dword [0xa2dc7c]
shl eax, 5
add eax, 0x696b20
mov eax, dword [eax]
cmp eax, 3
jne 0x4ada4c
mov eax, dword [0xa2dc7c]
shl eax, 5
add eax, 0x696b20
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa2dc70]
mov edx, dword [0xa2dc74]
cmp ebx, edx
jl 0x4ada4c
cmp ebx, edx
jg 0x4ada24
cmp ecx, eax
jbe 0x4ada4c
mov eax, dword [0xa2dc7c]
shl eax, 5
add eax, 0x696b20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa2dc70], eax
mov dword [0xa2dc74], edx
mov eax, dword [0xa2dc7c]
mov dword [0xa2dc78], eax
mov eax, dword [0xa2dc7c]
add eax, 1
mov dword [0xa2dc7c], eax
mov eax, dword [0xa2dc7c]
cmp eax, 2
setle al
test al, al
jne 0x4ad9d2
mov eax, dword [0xa2dc78]
cmp eax, 0xffffffff
je 0x4adace
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov edx, dword [eax + 4]
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa2dc78]
shl eax, 5
add eax, 0x696b30
mov edx, dword [eax]
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4adae4
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.004539bf
mov dword [0xa2dc38], 0
mov dword [0xa2dc80], 0
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x40]
mov dword [0xa2dc84], eax
mov eax, dword [0x6b1424]
mov dword [0xa2dc88], eax
movzx eax, byte [0xa2dbf0]
test al, al
je 0x4adb15
call fcn.004ad13a
mov dword [0xa2dc8c], 0
mov dword [0xa2dc1c], 0
jmp 0x4ae658
mov dword [0xa2dc90], 0
mov dword [0xa2dc18], 0
jmp 0x4ae60c
mov eax, dword [0xa2dc84]
movzx eax, byte [eax]
mov byte [0xa2dc94], al
mov eax, dword [0xa2dc84]
add eax, 1
mov dword [0xa2dc84], eax
mov eax, dword [0xa2dc84]
movzx eax, byte [eax]
mov byte [0xa2dc95], al
mov eax, dword [0xa2dc84]
add eax, 1
mov dword [0xa2dc84], eax
mov eax, dword [0xa2dc88]
movzx eax, byte [eax]
mov byte [0xa2dc96], al
mov eax, dword [0xa2dc88]
add eax, 1
mov dword [0xa2dc88], eax
mov eax, dword [0xa2dc88]
movzx eax, byte [eax]
mov byte [0xa2dc97], al
mov eax, dword [0xa2dc88]
add eax, 1
mov dword [0xa2dc88], eax
mov eax, dword [0xa2dc38]
test eax, eax
je 0x4adc7d
movzx edx, byte [0xa2dc94]
movzx eax, byte [0xa2dc96]
cmp dl, al
jne 0x4adc7d
movzx edx, byte [0xa2dc95]
movzx eax, byte [0xa2dc97]
cmp dl, al
jne 0x4adc7d
movzx eax, byte [0xa2dc95]
test al, al
jns 0x4adc02
mov edx, dword [0xa2dc44]
mov eax, dword [0xa2dc60]
cmp edx, eax
jne 0x4adc79
mov edx, dword [0xa2dc18]
mov eax, dword [0xa2dc58]
cmp edx, eax
jne 0x4adc2f
mov edx, dword [0xa2dc1c]
mov eax, dword [0xa2dc5c]
cmp edx, eax
jne 0x4adc2f
mov edx, dword [0xa2dc40]
mov eax, dword [0xa2dc64]
cmp edx, eax
jne 0x4adc7c
mov edx, dword [0xa2dc18]
mov eax, dword [0x535874]
cmp edx, eax
jne 0x4ae5da
mov edx, dword [0xa2dc1c]
mov eax, dword [0x535878]
cmp edx, eax
jne 0x4ae5da
mov edx, dword [0xa2dc58]
mov eax, dword [0x535874]
cmp edx, eax
jne 0x4adc7d
mov edx, dword [0xa2dc5c]
mov eax, dword [0x535878]
cmp edx, eax
je 0x4ae5da
jmp 0x4adc7d
nop
jmp 0x4adc7d
nop
mov eax, dword [0xa2dc88]
sub eax, 2
mov dword [0xa2dc88], eax
mov eax, dword [0xa2dc88]
movzx edx, byte [0xa2dc94]
mov byte [eax], dl
mov eax, dword [0xa2dc88]
add eax, 1
mov dword [0xa2dc88], eax
mov eax, dword [0xa2dc88]
movzx edx, byte [0xa2dc95]
mov byte [eax], dl
mov eax, dword [0xa2dc88]
add eax, 1
mov dword [0xa2dc88], eax
mov dword [0xa2dc98], 0
mov eax, dword [0xa2dc2c]
cmp eax, 0x1f
jle 0x4add96
movzx eax, byte [0xa2dc94]
movzx eax, al
movzx eax, word [eax + eax + 0x5350c0]
movzx eax, ax
mov dword [0xa2dc9c], eax
mov dword [0xa2dca0], 1
mov eax, dword [0xa2dca4]
test eax, eax
je 0x4add12
mov eax, dword [0xa2dca4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [0xa2dca0]
mov eax, dword [0x696c8c]
mov ecx, dword [0xa2dc2c]
shl ecx, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x20], 0xa2dcb8
mov dword [esp + 0x1c], 0xa2dcb4
mov dword [esp + 0x18], 0xa2dcb0
mov dword [esp + 0x14], 0xa2dcac
mov dword [esp + 0x10], 0xa2dca8
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa2dc9c
mov dword [esp], eax
call fcn.00452f0d
mov dword [0xa2dcbc], eax
mov eax, dword [0xa2dca8]
mov dword [0xa2dca4], eax
mov eax, dword [0xa2dca8]
mov dword [0xa2dcc0], eax
mov dword [0xa2dcc4], 0
jmp 0x4ade8a
mov dword [0xa2dcc4], 0
mov eax, dword [0xa2dc2c]
cmp eax, 8
jne 0x4addc1
movzx eax, byte [0xa2dc94]
movzx eax, al
shl eax, 6
add eax, 0xa1fc40
mov dword [0xa2dcc0], eax
mov eax, dword [0xa2dc2c]
cmp eax, 0xe
jne 0x4adde5
movzx eax, byte [0xa2dc94]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa23c40
mov dword [0xa2dcc0], eax
mov eax, dword [0xa2dc2c]
cmp eax, 0x10
jne 0x4ade06
movzx eax, byte [0xa2dc94]
movzx eax, al
shl eax, 7
add eax, 0xa23c40
mov dword [0xa2dcc0], eax
mov eax, dword [0xa2dc2c]
cmp eax, 9
jne 0x4ade31
movzx eax, byte [0xa2dc94]
movzx eax, al
shl eax, 6
add eax, 0xa1fc40
mov dword [0xa2dcc0], eax
mov dword [0xa2dc98], 1
mov eax, dword [0xa2dc2c]
cmp eax, 0xf
jne 0x4ade5f
movzx eax, byte [0xa2dc94]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa23c40
mov dword [0xa2dcc0], eax
mov dword [0xa2dc98], 1
mov eax, dword [0xa2dc2c]
cmp eax, 0x11
jne 0x4ade8a
movzx eax, byte [0xa2dc94]
movzx eax, al
shl eax, 7
add eax, 0xa23c40
mov dword [0xa2dcc0], eax
mov dword [0xa2dc98], 1
movzx eax, byte [0xa2dc95]
and eax, 0xf
mov byte [0xa2dcc8], al
mov eax, dword [0x535650]
test eax, eax
je 0x4adecb
movzx eax, byte [0xa2dc95]
movzx eax, al
sar eax, 4
and eax, 7
mov byte [0xa2dcc9], al
movzx eax, byte [0xa2dc95]
movzx eax, al
sar eax, 7
mov byte [0xa2dcca], al
jmp 0x4adedd
movzx eax, byte [0xa2dc95]
movzx eax, al
sar eax, 4
mov byte [0xa2dcc9], al
movzx eax, byte [0xa2dcca]
test al, al
je 0x4adf06
mov eax, dword [0xa2dc44]
test eax, eax
je 0x4adf06
mov eax, dword [0x535650]
test eax, eax
je 0x4adf06
movzx eax, byte [0xa2dcc9]
mov byte [0xa2dcc8], al
movzx eax, byte [0xa2dcc8]
movzx eax, al
mov eax, dword [eax*4 + 0xa2d1a0]
mov dword [0xa2dc78], eax
movzx eax, byte [0xa2dcc9]
movzx eax, al
mov eax, dword [eax*4 + 0xa2d1a0]
mov dword [0xa2dc7c], eax
mov eax, dword [0x6a7678]
mov ecx, dword [0xa2dc8c]
mov edx, dword [0x6a7694]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa2dc80]
add ecx, edx
mov edx, dword [0xa2dc90]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2dccc], eax
mov edx, dword [0x6a7694]
mov ecx, dword [0x696c94]
mov eax, dword [0x6a7674]
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 [0xa2dc28], eax
mov dword [0xa2dcd0], 0
jmp 0x4ae067
mov dword [0xa2dcd4], 0
jmp 0x4ae01b
mov eax, dword [0xa2dcc0]
movzx eax, byte [eax]
test al, al
je 0x4adfbe
mov eax, dword [0xa2dccc]
mov edx, dword [0xa2dc78]
mov dword [eax], edx
jmp 0x4adfcb
mov eax, dword [0xa2dccc]
mov edx, dword [0xa2dc7c]
mov dword [eax], edx
mov eax, dword [0xa2dc98]
test eax, eax
je 0x4adff4
mov edx, dword [0xa2dcd4]
mov eax, dword [0xa2dc98]
and eax, edx
test eax, eax
je 0x4ae001
mov eax, dword [0xa2dcc0]
add eax, 1
mov dword [0xa2dcc0], eax
jmp 0x4ae001
mov eax, dword [0xa2dcc0]
add eax, 1
mov dword [0xa2dcc0], eax
mov eax, dword [0xa2dccc]
add eax, 4
mov dword [0xa2dccc], eax
mov eax, dword [0xa2dcd4]
add eax, 1
mov dword [0xa2dcd4], eax
mov edx, dword [0xa2dcd4]
mov eax, dword [0xa2dc30]
cmp edx, eax
setl al
test al, al
jne 0x4adfa3
mov eax, dword [0xa2dccc]
mov edx, dword [0xa2dc28]
shl edx, 2
add eax, edx
mov dword [0xa2dccc], eax
mov edx, dword [0xa2dcc0]
mov eax, dword [0xa2dcc4]
add eax, edx
mov dword [0xa2dcc0], eax
mov eax, dword [0xa2dcd0]
add eax, 1
mov dword [0xa2dcd0], eax
mov edx, dword [0xa2dcd0]
mov eax, dword [0xa2dc34]
cmp edx, eax
setl al
test al, al
jne 0x4adf97
mov eax, dword [0x6a7674]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x4ae5de
mov eax, dword [0xa2dc40]
test eax, eax
je 0x4ae5de
mov edx, dword [0xa2dc58]
mov eax, dword [0xa2dc18]
cmp edx, eax
jne 0x4ae5de
mov edx, dword [0xa2dc5c]
mov eax, dword [0xa2dc1c]
cmp edx, eax
jne 0x4ae5de
mov eax, dword [0x6a7674]
movzx eax, byte [eax + 0x3d]
movzx eax, al
mov dword [0xa2dcd8], eax
mov eax, dword [0x6a7674]
movzx eax, byte [eax + 0x3e]
movzx eax, al
mov dword [0xa2dcdc], eax
mov byte [0xa2dce0], 0
mov byte [0xa2dce1], 0
mov byte [0xa2dce2], 0
mov byte [0xa2dce3], 0
mov eax, dword [0xa2dcdc]
test eax, eax
jne 0x4ae123
mov eax, dword [0xa2dcd8]
test eax, eax
jne 0x4ae5dd
mov byte [0xa2dce2], 1
jmp 0x4ae281
mov edx, dword [0xa2dcdc]
mov eax, dword [0xa2dcd8]
cmp edx, eax
jge 0x4ae148
mov eax, dword [0xa2dcdc]
mov byte [0xa2dce3], al
mov byte [0xa2dce2], 0xff
jmp 0x4ae281
mov edx, dword [0xa2dcd8]
mov eax, dword [0xa2dcdc]
cmp edx, eax
jne 0x4ae18a
mov eax, dword [0xa2dcd8]
cmp eax, 3
jg 0x4ae177
mov eax, dword [0xa2dcd8]
mov byte [0xa2dce3], al
mov byte [0xa2dce2], 1
jmp 0x4ae281
mov byte [0xa2dce0], 1
mov byte [0xa2dce2], 1
jmp 0x4ae281
mov eax, dword [0xa2dcd8]
cmp eax, 2
jle 0x4ae1f2
mov edx, dword [0xa2dcdc]
mov eax, dword [0xa2dcd8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x4ae1bd
mov byte [0xa2dce0], 1
mov byte [0xa2dce2], 2
jmp 0x4ae281
mov edx, dword [0xa2dcdc]
mov eax, dword [0xa2dcd8]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x4ae1e6
mov byte [0xa2dce0], 1
mov byte [0xa2dce2], 3
jmp 0x4ae281
mov byte [0xa2dce1], 1
jmp 0x4ae281
mov eax, dword [0xa2dcd8]
cmp eax, 1
jg 0x4ae23f
mov eax, dword [0xa2dcdc]
cmp eax, 3
jg 0x4ae22c
mov eax, dword [0xa2dcd8]
mov byte [0xa2dce3], al
mov eax, dword [0xa2dcdc]
mov edx, eax
mov eax, dword [0xa2dcd8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
add eax, 1
mov byte [0xa2dce2], al
jmp 0x4ae281
mov eax, dword [0xa2dcd8]
mov byte [0xa2dce3], al
mov byte [0xa2dce2], 0xff
jmp 0x4ae281
mov eax, dword [0xa2dcdc]
cmp eax, 3
jne 0x4ae259
mov byte [0xa2dce3], 2
mov byte [0xa2dce2], 2
jmp 0x4ae281
mov eax, dword [0xa2dcdc]
cmp eax, 4
jne 0x4ae273
mov byte [0xa2dce0], 1
mov byte [0xa2dce2], 3
jmp 0x4ae281
mov byte [0xa2dce3], 2
mov byte [0xa2dce2], 0xff
mov edx, dword [0x696c94]
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa2dce4], eax
mov edx, dword [0x696c90]
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa2dce8], eax
movzx eax, byte [0xa2dce1]
test al, al
je 0x4ae3b8
mov eax, dword [0xa2dce8]
sub eax, 1
mov dword [0xa2dcd0], eax
mov eax, dword [0xa2dce8]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov byte [0xa2dce2], al
movzx eax, byte [0xa2dc95]
and eax, 0xf
mov byte [0xa2dcc8], al
movzx eax, byte [0xa2dcc8]
movzx eax, al
mov eax, dword [eax*4 + 0xa2d1a0]
mov dword [0xa2dc78], eax
mov eax, dword [0x6a7678]
mov ecx, dword [0xa2dc8c]
mov edx, dword [0xa2dcd0]
add ecx, edx
mov edx, dword [0x6a7694]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa2dc80]
add ecx, edx
mov edx, dword [0xa2dc90]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2dccc], eax
mov dword [0xa2dcd4], 0
jmp 0x4ae374
mov eax, dword [0xa2dccc]
mov edx, dword [0xa2dc78]
mov dword [eax], edx
mov eax, dword [0xa2dccc]
add eax, 4
mov dword [0xa2dccc], eax
mov eax, dword [0xa2dcd4]
add eax, 1
mov dword [0xa2dcd4], eax
mov edx, dword [0xa2dcd4]
mov eax, dword [0xa2dce4]
cmp edx, eax
setl al
test al, al
jne 0x4ae34d
mov eax, dword [0xa2dcd0]
sub eax, 1
mov dword [0xa2dcd0], eax
movzx eax, byte [0xa2dce2]
sub eax, 1
mov byte [0xa2dce2], al
movzx eax, byte [0xa2dce2]
test al, al
je 0x4ae5de
jmp 0x4ae309
movzx eax, byte [0xa2dce0]
test al, al
je 0x4ae4bc
mov eax, dword [0xa2dce8]
sub eax, 1
mov dword [0xa2dcd0], eax
mov eax, dword [0xa2dcd0]
cmp eax, 0xf
jne 0x4ae3e8
mov dword [0xa2dcd0], 0xe
movzx eax, byte [0xa2dc95]
and eax, 0xf
mov byte [0xa2dcc8], al
movzx eax, byte [0xa2dcc8]
movzx eax, al
mov eax, dword [eax*4 + 0xa2d1a0]
mov dword [0xa2dc78], eax
mov eax, dword [0x6a7678]
mov ecx, dword [0xa2dc8c]
mov edx, dword [0xa2dcd0]
add ecx, edx
mov edx, dword [0x6a7694]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa2dc80]
add ecx, edx
mov edx, dword [0xa2dc90]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2dccc], eax
mov dword [0xa2dcd4], 0
jmp 0x4ae478
mov eax, dword [0xa2dccc]
mov edx, dword [0xa2dc78]
mov dword [eax], edx
mov eax, dword [0xa2dccc]
add eax, 4
mov dword [0xa2dccc], eax
mov eax, dword [0xa2dcd4]
add eax, 1
mov dword [0xa2dcd4], eax
mov edx, dword [0xa2dcd4]
mov eax, dword [0xa2dce4]
cmp edx, eax
setl al
test al, al
jne 0x4ae451
mov eax, dword [0xa2dcd0]
sub eax, 1
mov dword [0xa2dcd0], eax
movzx eax, byte [0xa2dce2]
sub eax, 1
mov byte [0xa2dce2], al
movzx eax, byte [0xa2dce2]
test al, al
je 0x4ae5de
jmp 0x4ae40d
movzx eax, byte [0xa2dce3]
movzx edx, al
mov eax, dword [0xa2dce8]
cmp edx, eax
jge 0x4ae5de
movzx eax, byte [0xa2dce3]
movzx eax, al
mov dword [0xa2dcd0], eax
movzx eax, byte [0xa2dc95]
and eax, 0xf
mov byte [0xa2dcc8], al
movzx eax, byte [0xa2dcc8]
movzx eax, al
mov eax, dword [eax*4 + 0xa2d1a0]
mov dword [0xa2dc78], eax
movzx eax, byte [0xa2dce2]
cmp al, 0xff
jne 0x4ae52e
mov eax, dword [0xa2dce8]
mov edx, eax
movzx eax, byte [0xa2dce3]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov byte [0xa2dce2], al
jmp 0x4ae52e
nop
mov eax, dword [0x6a7678]
mov ecx, dword [0xa2dc8c]
mov edx, dword [0xa2dcd0]
add ecx, edx
mov edx, dword [0x6a7694]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa2dc80]
add ecx, edx
mov edx, dword [0xa2dc90]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa2dccc], eax
mov dword [0xa2dcd4], 0
jmp 0x4ae599
mov eax, dword [0xa2dccc]
mov edx, dword [0xa2dc78]
mov dword [eax], edx
mov eax, dword [0xa2dccc]
add eax, 4
mov dword [0xa2dccc], eax
mov eax, dword [0xa2dcd4]
add eax, 1
mov dword [0xa2dcd4], eax
mov edx, dword [0xa2dcd4]
mov eax, dword [0xa2dce4]
cmp edx, eax
setl al
test al, al
jne 0x4ae572
mov eax, dword [0xa2dcd0]
add eax, 1
mov dword [0xa2dcd0], eax
movzx eax, byte [0xa2dce2]
sub eax, 1
mov byte [0xa2dce2], al
movzx eax, byte [0xa2dce2]
test al, al
jne 0x4ae52d
jmp 0x4ae5de
nop
jmp 0x4ae5de
nop
mov edx, dword [0x696c94]
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa2dc90]
add eax, edx
mov dword [0xa2dc90], eax
mov eax, dword [0xa2dc18]
add eax, 1
mov dword [0xa2dc18], eax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0xa2dc18]
cmp edx, eax
setg al
test al, al
jne 0x4adb47
mov edx, dword [0x696c90]
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa2dc8c]
add eax, edx
mov dword [0xa2dc8c], eax
mov eax, dword [0xa2dc1c]
add eax, 1
mov dword [0xa2dc1c], eax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov eax, dword [0xa2dc1c]
cmp edx, eax
setg al
test al, al
jne 0x4adb2e
mov eax, dword [0xa2dc44]
mov dword [0xa2dc60], eax
mov eax, dword [0xa2dc40]
mov dword [0xa2dc64], eax
mov eax, dword [0xa2dc58]
mov dword [0x535874], eax
mov eax, dword [0xa2dc5c]
mov dword [0x535878], eax
mov dword [0x6b1420], 1
movzx eax, byte [0xa2dbf0]
test al, al
je 0x4ae6b8
call fcn.004ad13a
mov eax, dword [0xa2dbf4]
mov edx, eax
sar edx, 0x1f
mov dword [0xa2dcf0], eax
mov dword [0xa2dcf4], edx
jmp 0x4aeead
mov eax, dword [0x6a7674]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x4aeb2c
movzx eax, byte [0xa2dbf0]
test al, al
jne 0x4ae883
mov dword [0xa2dcf8], 0
mov dword [0xa2dcfc], 0
mov dword [0xa2dc78], 0xffffffff
mov dword [0xa2dc7c], 0
jmp 0x4ae7a6
mov eax, dword [0xa2dc7c]
shl eax, 5
add eax, 0x696b20
mov eax, dword [eax]
cmp eax, 4
je 0x4ae747
mov eax, dword [0xa2dc7c]
shl eax, 5
add eax, 0x696b20
mov eax, dword [eax]
cmp eax, 3
jne 0x4ae799
mov eax, dword [0xa2dc7c]
shl eax, 5
add eax, 0x696b20
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa2dcf8]
mov edx, dword [0xa2dcfc]
cmp ebx, edx
jl 0x4ae799
cmp ebx, edx
jg 0x4ae771
cmp ecx, eax
jbe 0x4ae799
mov eax, dword [0xa2dc7c]
shl eax, 5
add eax, 0x696b20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa2dcf8], eax
mov dword [0xa2dcfc], edx
mov eax, dword [0xa2dc7c]
mov dword [0xa2dc78], eax
mov eax, dword [0xa2dc7c]
add eax, 1
mov dword [0xa2dc7c], eax
mov eax, dword [0xa2dc7c]
cmp eax, 2
setle al
test al, al
jne 0x4ae71f
mov eax, dword [0x696a9c]
test eax, eax
jne 0x4ae957
mov eax, dword [0xa2dc78]
cmp eax, 0xffffffff
je 0x4ae95e
mov eax, dword [0x6b1420]
test eax, eax
je 0x4ae95a
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa2dc00], eax
mov eax, dword [0xa2dc78]
shl eax, 5
add eax, 0x696b30
mov edx, dword [eax + 4]
mov eax, dword [0xa2dc78]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax + 8]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [0xa2dc00]
cmp edx, eax
jne 0x4ae95d
mov eax, dword [0x535854]
test eax, eax
je 0x4af0a2
mov eax, dword [0xa2dc00]
mov ecx, eax
mov eax, dword [0x6a7674]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2dc78]
shl eax, 5
add eax, 0x696b30
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 0x4af0a5
jmp 0x4ae95e
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa2dc00], eax
mov edx, dword [0xa2dc00]
mov eax, dword [0x53586c]
cmp edx, eax
je 0x4ae8e0
mov eax, dword [0xa2d194]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa2dc00]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa2d194], eax
mov eax, dword [0xa2dc00]
mov dword [0x53586c], eax
jmp 0x4ae931
mov eax, dword [0x696a9c]
test eax, eax
jne 0x4ae92d
mov eax, dword [0x535854]
test eax, eax
je 0x4af0a8
mov eax, dword [0xa2dc00]
mov ecx, eax
mov eax, dword [0x6a7674]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2d194]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4ae930
mov eax, dword [0x6b1420]
test eax, eax
jne 0x4af0ab
jmp 0x4ae931
nop
jmp 0x4ae931
nop
mov eax, dword [0xa2dc00]
mov ecx, eax
mov eax, dword [0x6a7674]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2d194]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4ae95e
nop
jmp 0x4ae95e
nop
jmp 0x4ae95e
nop
mov edx, dword [0x6a7694]
mov eax, dword [0x6a7698]
imul eax, edx
shl eax, 2
mov dword [0xa2dd00], eax
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov edx, dword [eax + 0xc]
mov eax, dword [0xa2dd00]
cmp edx, eax
jge 0x4ae9db
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa2dbf4]
mov eax, dword [0xa2dd00]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x696b30
mov dword [edx], eax
mov edx, dword [0xa2dbf4]
mov eax, dword [0xa2dd00]
shl edx, 5
add edx, 0x696b30
mov dword [edx + 0xc], eax
mov edx, dword [0xa2dbf4]
mov eax, dword [0x6a7694]
shl edx, 5
add edx, 0x696b30
mov dword [edx + 4], eax
mov edx, dword [0xa2dbf4]
mov eax, dword [0x6a7698]
shl edx, 5
add edx, 0x696b30
mov dword [edx + 8], eax
movzx eax, byte [0xa2dbf0]
test al, al
jne 0x4aea68
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov edx, dword [eax + 4]
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0x6a7674]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4aeea9
mov eax, dword [0xa2d194]
mov dword [0xa2dd04], eax
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax]
mov dword [0xa2dd08], eax
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov edx, dword [eax + 4]
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax + 8]
imul eax, edx
mov dword [0xa2dd0c], eax
mov eax, dword [0xa2dd0c]
test eax, eax
jle 0x4aeea9
jmp 0x4aeb11
mov eax, dword [0xa2dd04]
mov edx, dword [eax]
mov dword [0xa2dd10], edx
add eax, 4
mov dword [0xa2dd04], eax
mov eax, dword [0xa2dd08]
mov edx, dword [0xa2dd10]
mov ecx, edx
and ecx, 0xff00ff00
mov edx, dword [0xa2dd10]
and edx, 0xff0000
shr edx, 0x10
or ecx, edx
mov edx, dword [0xa2dd10]
and edx, 0xff
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
add eax, 4
mov dword [0xa2dd08], eax
mov eax, dword [0xa2dd0c]
test eax, eax
setne dl
sub eax, 1
mov dword [0xa2dd0c], eax
test dl, dl
jne 0x4aeabd
jmp 0x4aeea9
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x4aebcd
call fcn.00452f3b
and eax, 0x200
mov dword [0xa2dc78], eax
mov eax, dword [0xa2dc78]
test eax, eax
je 0x4aeb61
mov dword [0xa2dc78], 1
mov dword [0xa2dc00], 0
jmp 0x4aebbe
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x48]
mov edx, dword [0xa2dc00]
shl edx, 2
lea ecx, [eax + edx]
mov edx, dword [0xa2dc78]
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x48]
mov ebx, dword [0xa2dc00]
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 + 0xa1fbe0]
mov dword [ecx], eax
mov eax, dword [0xa2dc00]
add eax, 1
mov dword [0xa2dc00], eax
mov eax, dword [0xa2dc00]
cmp eax, 3
setle al
test al, al
jne 0x4aeb6d
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
mov dword [0xa2dc00], eax
mov eax, dword [0x6a7674]
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 [0xa2dc78], eax
mov edx, dword [0xa2dc00]
mov eax, dword [0x53586c]
cmp edx, eax
je 0x4aec45
mov eax, dword [0xa2d194]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa2dc00]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa2d194], eax
mov eax, dword [0xa2dc00]
mov dword [0x53586c], eax
jmp 0x4aecc3
mov eax, dword [0x696a9c]
test eax, eax
jne 0x4aecbc
mov eax, dword [0x535854]
test eax, eax
je 0x4af0ae
mov eax, dword [0xa2dc00]
mov ecx, eax
mov eax, dword [0x6a7674]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2d194]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4aecbf
mov eax, dword [0xa2dc78]
shl eax, 2
mov edx, eax
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa2d1a0
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4aecc2
mov eax, dword [0x6b1420]
test eax, eax
jne 0x4af0b1
jmp 0x4aecc3
nop
jmp 0x4aecc3
nop
jmp 0x4aecc3
nop
mov edx, dword [0x6a7694]
mov eax, dword [0x6a7698]
imul eax, edx
shl eax, 2
mov dword [0xa2dd14], eax
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov edx, dword [eax + 0xc]
mov eax, dword [0xa2dd14]
cmp edx, eax
jge 0x4aed40
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa2dbf4]
mov eax, dword [0xa2dd14]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x696b30
mov dword [edx], eax
mov edx, dword [0xa2dbf4]
mov eax, dword [0xa2dd14]
shl edx, 5
add edx, 0x696b30
mov dword [edx + 0xc], eax
mov edx, dword [0xa2dbf4]
mov eax, dword [0x6a7694]
shl edx, 5
add edx, 0x696b30
mov dword [edx + 4], eax
mov edx, dword [0xa2dbf4]
mov eax, dword [0x6a7698]
shl edx, 5
add edx, 0x696b30
mov dword [edx + 8], eax
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax]
mov dword [0x6a7678], eax
mov eax, dword [0xa2dc00]
mov ecx, eax
mov eax, dword [0x6a7674]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa2d194]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa2dc78]
shl eax, 2
mov edx, eax
mov eax, dword [0x6a7674]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa2d1a0
call sub.msvcrt.dll_memcpy
movzx eax, byte [0xa2dbf0]
test al, al
je 0x4aeddc
call fcn.004ad13a
mov eax, dword [0xa2d194]
mov dword [0xa2dd18], eax
mov eax, dword [0x6a7678]
mov dword [0xa2dd1c], eax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa2dc90], eax
mov eax, dword [0x6a7674]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa2dc8c], eax
mov dword [0xa2dc1c], 0
jmp 0x4aee83
mov dword [0xa2dc18], 0
jmp 0x4aee62
mov edx, dword [0xa2dd1c]
mov eax, dword [0xa2dd18]
movzx ecx, byte [eax]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0xa2d1a0]
mov dword [edx], ecx
add edx, 4
mov dword [0xa2dd1c], edx
add eax, 1
mov dword [0xa2dd18], eax
mov eax, dword [0xa2dc18]
add eax, 1
mov dword [0xa2dc18], eax
mov edx, dword [0xa2dc18]
mov eax, dword [0xa2dc90]
cmp edx, eax
setl al
test al, al
jne 0x4aee2a
mov eax, dword [0xa2dc1c]
add eax, 1
mov dword [0xa2dc1c], eax
mov edx, dword [0xa2dc1c]
mov eax, dword [0xa2dc8c]
cmp edx, eax
setl al
test al, al
jne 0x4aee1e
movzx eax, byte [0xa2dbf0]
test al, al
je 0x4aeeac
call fcn.004ad13a
jmp 0x4aeeac
nop
jmp 0x4aeead
nop
mov dword [0x696a9c], 0
mov dword [0x6b1420], 1
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b20
mov dword [eax], 3
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x696b88], eax
mov dword [0x696b8c], edx
mov eax, dword [0x691b4c]
test eax, eax
je 0x4af0b2
mov eax, dword [0x696c00]
test eax, eax
je 0x4af0b2
mov eax, dword [0xa2dd20]
test eax, eax
jne 0x4aef5b
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 [0xa2dd20], eax
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax + 4]
mov dword [0xa2dd24], eax
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov eax, dword [eax + 8]
mov dword [0xa2dd28], eax
mov eax, dword [0xa2dd2c]
add eax, 1
mov dword [0xa2dd2c], eax
mov eax, dword [0xa2dd2c]
mov dword [0xa2dd30], eax
mov eax, dword [0xa2dd24]
mov dword [0xa2dd34], eax
mov eax, dword [0xa2dd28]
mov dword [0xa2dd38], eax
mov eax, dword [0xa2dd20]
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 [0xa2dd24]
mov eax, dword [0xa2dd28]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b30
mov edx, dword [eax]
mov eax, dword [0xa2dd20]
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 [0xa2dd20]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call eax
sub esp, 4
mov eax, dword [0xa2dd20]
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 [0xa2dd20]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0xa2dd30
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x4af0b2
nop
jmp 0x4af0b2
nop
jmp 0x4af0b2
nop
jmp 0x4af0b2
nop
jmp 0x4af0b2
nop
jmp 0x4af0b2
nop
jmp 0x4af0b2
nop
jmp 0x4af0b2
nop
jmp 0x4af0b2
nop
jmp 0x4af0b2
nop
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b20
mov eax, dword [eax]
cmp eax, 2
jne 0x4af0f7
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b20
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x696b88], eax
mov dword [0x696b8c], edx
mov eax, dword [0xa2dbf4]
shl eax, 5
add eax, 0x696b20
mov dword [eax], 1
mov eax, dword [0x6b1434]
cmp eax, 1
jne 0x4af11c
mov dword [0x6b1434], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x5352d8]
cmp eax, 0xffffffff
jne 0x4af130
mov dword [0x5352d8], 0
mov dword [0xa2d140], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret