Function at 0x4c1d1a
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov byte [0xa440f0], 0
mov eax, dword [0x6a7b4c]
test eax, eax
je 0x4c1d3a
mov byte [0xa440f0], 1
mov eax, dword [0x6c7934]
cmp eax, 1
jne 0x4c1d5f
mov dword [0x6c7934], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x6a7b4c]
test eax, eax
jne 0x4c1d80
mov eax, dword [0x6ad184]
test eax, eax
je 0x4c1d80
mov dword [0xa43640], 1
jmp 0x4c3c9f
mov eax, dword [0x6c7934]
test eax, eax
jne 0x4c3c5b
mov dword [0xa440f4], 0xffffffff
mov eax, dword [0x54a0a0]
mov edx, dword [0x54a0a4]
mov dword [0xa440f8], eax
mov dword [0xa440fc], edx
mov dword [0xa44100], 0
jmp 0x4c1e2c
mov eax, dword [0xa44100]
shl eax, 5
add eax, 0x6ad020
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa440f8]
mov edx, dword [0xa440fc]
cmp ebx, edx
jg 0x4c1e1f
cmp ebx, edx
jl 0x4c1de3
cmp ecx, eax
jae 0x4c1e1f
mov eax, dword [0xa44100]
shl eax, 5
add eax, 0x6ad020
mov eax, dword [eax]
cmp eax, 3
jne 0x4c1e1f
mov eax, dword [0xa44100]
shl eax, 5
add eax, 0x6ad020
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa440f8], eax
mov dword [0xa440fc], edx
mov eax, dword [0xa44100]
mov dword [0xa440f4], eax
mov eax, dword [0xa44100]
add eax, 1
mov dword [0xa44100], eax
mov eax, dword [0xa44100]
cmp eax, 2
setle al
test al, al
jne 0x4c1db9
mov dword [0xa44100], 0
jmp 0x4c1e76
mov eax, dword [0xa44100]
shl eax, 5
add eax, 0x6ad020
mov eax, dword [eax]
cmp eax, 1
jne 0x4c1e69
mov eax, dword [0xa44100]
mov dword [0xa440f4], eax
mov eax, dword [0xa44100]
add eax, 1
mov dword [0xa44100], eax
mov eax, dword [0xa44100]
cmp eax, 2
setle al
test al, al
jne 0x4c1e4b
mov eax, dword [0xa440f4]
cmp eax, 0xffffffff
jne 0x4c1ea0
mov dword [esp], str.Software_frame_buffer:_Failed_to_find_available_frame
call fcn.00468523
jmp 0x4c3c9f
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad020
mov dword [eax], 2
mov ecx, dword [0xa440f4]
mov eax, dword [0x54a0a0]
mov edx, dword [0x54a0a4]
shl ecx, 5
add ecx, 0x6ad020
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
add eax, 1
adc edx, 0
mov dword [0x54a0a0], eax
mov dword [0x54a0a4], edx
mov eax, dword [0x6a7b4c]
test eax, eax
je 0x4c1f35
mov dword [esp + 8], 1
fld qword [0x57a328]
fstp qword [esp]
call fcn.00489caa
fstp qword [0xa44108]
fld qword [0xa44110]
fld qword [0xa44108]
fsubp st(1)
fabs
fld qword [0x57a4b0]
fucompi st(1)
fstp st(0)
ja 0x4c3bfa
fld qword [0xa44108]
fstp qword [0xa44110]
mov eax, dword [0x6bdb74]
test eax, eax
je 0x4c3bfd
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa44118], eax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa4411c], eax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4c1fc4
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x6ad194]
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa44118], eax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x6ad190]
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa4411c], eax
mov eax, dword [0xa44118]
cmp eax, 0x200
jg 0x4c1ff4
mov eax, dword [0xa4411c]
cmp eax, 0x180
jg 0x4c1ff4
mov eax, dword [0xa44118]
add eax, eax
mov dword [0xa44118], eax
mov eax, dword [0xa4411c]
add eax, eax
mov dword [0xa4411c], eax
mov dword [0xa44120], 0xffffffff
mov dword [0xa44124], 0xffffffff
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa44118], eax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa4411c], eax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4c208a
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov ecx, dword [0x6ad194]
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa44118], eax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov ecx, dword [0x6ad190]
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, ecx
mov eax, dword [eax]
imul eax, edx
mov dword [0xa4411c], eax
mov eax, dword [0xa44118]
mov dword [0x6bdb94], eax
mov eax, dword [0xa4411c]
mov dword [0x6bdb98], eax
mov dword [0xa44128], 0
mov dword [0x6bdb9c], 0
mov eax, dword [0x6bdb78]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x4c3236
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x30]
mov dword [0xa4412c], eax
mov eax, dword [0x6ad194]
mov edx, dword [0xa4412c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa44130], eax
mov eax, dword [0x6ad190]
mov edx, dword [0xa4412c]
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa44134], eax
mov eax, dword [0x6c7920]
mov dword [0xa44138], eax
mov dword [0xa4413c], 0
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
add eax, eax
mov dword [0xa44100], eax
mov eax, dword [0xa44100]
mov edx, eax
mov eax, dword [0x54a560]
cmp edx, eax
je 0x4c2180
mov eax, dword [0x6c7924]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa44100]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0x6c7924], eax
mov eax, dword [0xa44100]
mov dword [0x54a560], eax
mov dword [0xa44138], 0
mov eax, dword [0x54a854]
test eax, eax
jne 0x4c2197
mov eax, dword [0xa44138]
cmp eax, 1
je 0x4c3c00
mov eax, dword [0xa44138]
test eax, eax
jne 0x4c21c2
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa436a0
call sub.msvcrt.dll_memcpy
jmp 0x4c2210
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa436a0
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4c2210
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], 0x400
mov dword [esp + 4], eax
mov dword [esp], 0xa436a0
call sub.msvcrt.dll_memcpy
mov dword [0xa44138], 0
mov eax, dword [0xa44138]
test eax, eax
je 0x4c224a
mov ecx, dword [0x54a560]
mov eax, dword [0x6bdb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0x6c7924]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4c224a
mov dword [0xa4413c], 1
mov eax, dword [0x6c780c]
and eax, 8
test eax, eax
je 0x4c2262
mov dword [0xa44140], 1
jmp 0x4c226c
mov dword [0xa44140], 0
mov eax, dword [0x6c780c]
and eax, 8
test eax, eax
je 0x4c2284
mov dword [0xa44144], 1
jmp 0x4c228e
mov dword [0xa44144], 0
mov eax, dword [0x6a7b4c]
test eax, eax
je 0x4c235a
mov dword [esp + 8], 1
fld qword [0x57a328]
fstp qword [esp]
call fcn.00489caa
fld qword [0x57a2b0]
fdivp st(1)
fstp qword [0xa44148]
fld qword [0xa44148]
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 [0xa44150], eax
mov dword [0xa44154], edx
mov eax, dword [0xa44150]
mov edx, dword [0xa44154]
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 0x4c231d
mov dword [0xa44140], 1
jmp 0x4c2327
mov dword [0xa44140], 0
mov eax, dword [0xa44150]
mov edx, dword [0xa44154]
mov esi, eax
and esi, 1
mov edi, edx
and edi, 0
mov eax, edi
or eax, esi
test eax, eax
je 0x4c2350
mov dword [0xa44144], 1
jmp 0x4c235a
mov dword [0xa44144], 0
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x38]
cwde
sub eax, 1
mov dword [0xa44158], eax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x3a]
cwde
sub eax, 1
mov dword [0xa4415c], eax
mov eax, dword [0x6bdb74]
movzx eax, byte [eax + 0x51]
cmp al, 2
jne 0x4c23ba
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
lea edx, [eax - 1]
mov eax, dword [0xa4415c]
cmp edx, eax
jle 0x4c23ba
mov eax, dword [0xa4415c]
add eax, 1
mov dword [0xa4415c], eax
mov dword [0xa44158], 0
mov eax, dword [0xa44138]
test eax, eax
je 0x4c241d
mov edx, dword [0xa44144]
mov eax, dword [0xa44160]
cmp edx, eax
je 0x4c23dc
mov dword [0xa4413c], 1
mov edx, dword [0xa44140]
mov eax, dword [0xa44164]
cmp edx, eax
je 0x4c23f5
mov dword [0xa4413c], 1
mov edx, dword [0xa44158]
mov eax, dword [0x54a874]
cmp edx, eax
jne 0x4c2413
mov edx, dword [0xa4415c]
mov eax, dword [0x54a878]
cmp edx, eax
je 0x4c241d
mov dword [0xa4413c], 1
mov eax, dword [0xa44138]
test eax, eax
jne 0x4c2430
mov dword [0xa4413c], 1
mov eax, dword [0xa4413c]
test eax, eax
je 0x4c3c03
mov edx, dword [0x6bdb94]
mov eax, dword [0x6bdb98]
imul eax, edx
shl eax, 2
mov dword [0xa44168], eax
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov edx, dword [eax + 0xc]
mov eax, dword [0xa44168]
cmp edx, eax
jge 0x4c24ba
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa440f4]
mov eax, dword [0xa44168]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6ad030
mov dword [edx], eax
mov edx, dword [0xa440f4]
mov eax, dword [0xa44168]
shl edx, 5
add edx, 0x6ad030
mov dword [edx + 0xc], eax
mov edx, dword [0xa440f4]
mov eax, dword [0x6bdb94]
shl edx, 5
add edx, 0x6ad030
mov dword [edx + 4], eax
mov edx, dword [0xa440f4]
mov eax, dword [0x6bdb98]
shl edx, 5
add edx, 0x6ad030
mov dword [edx + 8], eax
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax]
mov dword [0x6bdb78], eax
mov eax, dword [0xa44138]
test eax, eax
je 0x4c2648
mov dword [0xa44170], 0
mov dword [0xa44174], 0
mov dword [0xa44178], 0xffffffff
mov dword [0xa4417c], 0
jmp 0x4c25bd
mov eax, dword [0xa4417c]
shl eax, 5
add eax, 0x6ad020
mov eax, dword [eax]
cmp eax, 4
je 0x4c255e
mov eax, dword [0xa4417c]
shl eax, 5
add eax, 0x6ad020
mov eax, dword [eax]
cmp eax, 3
jne 0x4c25b0
mov eax, dword [0xa4417c]
shl eax, 5
add eax, 0x6ad020
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa44170]
mov edx, dword [0xa44174]
cmp ebx, edx
jl 0x4c25b0
cmp ebx, edx
jg 0x4c2588
cmp ecx, eax
jbe 0x4c25b0
mov eax, dword [0xa4417c]
shl eax, 5
add eax, 0x6ad020
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa44170], eax
mov dword [0xa44174], edx
mov eax, dword [0xa4417c]
mov dword [0xa44178], eax
mov eax, dword [0xa4417c]
add eax, 1
mov dword [0xa4417c], eax
mov eax, dword [0xa4417c]
cmp eax, 2
setle al
test al, al
jne 0x4c2536
mov eax, dword [0xa44178]
cmp eax, 0xffffffff
je 0x4c2632
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov edx, dword [eax + 4]
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa44178]
shl eax, 5
add eax, 0x6ad030
mov edx, dword [eax]
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4c2648
mov dword [esp], str.Text_Screen_Update:_Failed_to_locate_previous_frames_data_for_comparison
call fcn.00468523
mov dword [0xa44138], 0
mov dword [0xa44180], 0
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x40]
mov dword [0xa44184], eax
mov eax, dword [0x6c7924]
mov dword [0xa44188], eax
movzx eax, byte [0xa440f0]
test al, al
je 0x4c2679
call fcn.004c1c9e
mov dword [0xa4418c], 0
mov dword [0xa4411c], 0
jmp 0x4c31bc
mov dword [0xa44190], 0
mov dword [0xa44118], 0
jmp 0x4c3170
mov eax, dword [0xa44184]
movzx eax, byte [eax]
mov byte [0xa44194], al
mov eax, dword [0xa44184]
add eax, 1
mov dword [0xa44184], eax
mov eax, dword [0xa44184]
movzx eax, byte [eax]
mov byte [0xa44195], al
mov eax, dword [0xa44184]
add eax, 1
mov dword [0xa44184], eax
mov eax, dword [0xa44188]
movzx eax, byte [eax]
mov byte [0xa44196], al
mov eax, dword [0xa44188]
add eax, 1
mov dword [0xa44188], eax
mov eax, dword [0xa44188]
movzx eax, byte [eax]
mov byte [0xa44197], al
mov eax, dword [0xa44188]
add eax, 1
mov dword [0xa44188], eax
mov eax, dword [0xa44138]
test eax, eax
je 0x4c27e1
movzx edx, byte [0xa44194]
movzx eax, byte [0xa44196]
cmp dl, al
jne 0x4c27e1
movzx edx, byte [0xa44195]
movzx eax, byte [0xa44197]
cmp dl, al
jne 0x4c27e1
movzx eax, byte [0xa44195]
test al, al
jns 0x4c2766
mov edx, dword [0xa44144]
mov eax, dword [0xa44160]
cmp edx, eax
jne 0x4c27dd
mov edx, dword [0xa44118]
mov eax, dword [0xa44158]
cmp edx, eax
jne 0x4c2793
mov edx, dword [0xa4411c]
mov eax, dword [0xa4415c]
cmp edx, eax
jne 0x4c2793
mov edx, dword [0xa44140]
mov eax, dword [0xa44164]
cmp edx, eax
jne 0x4c27e0
mov edx, dword [0xa44118]
mov eax, dword [0x54a874]
cmp edx, eax
jne 0x4c313e
mov edx, dword [0xa4411c]
mov eax, dword [0x54a878]
cmp edx, eax
jne 0x4c313e
mov edx, dword [0xa44158]
mov eax, dword [0x54a874]
cmp edx, eax
jne 0x4c27e1
mov edx, dword [0xa4415c]
mov eax, dword [0x54a878]
cmp edx, eax
je 0x4c313e
jmp 0x4c27e1
nop
jmp 0x4c27e1
nop
mov eax, dword [0xa44188]
sub eax, 2
mov dword [0xa44188], eax
mov eax, dword [0xa44188]
movzx edx, byte [0xa44194]
mov byte [eax], dl
mov eax, dword [0xa44188]
add eax, 1
mov dword [0xa44188], eax
mov eax, dword [0xa44188]
movzx edx, byte [0xa44195]
mov byte [eax], dl
mov eax, dword [0xa44188]
add eax, 1
mov dword [0xa44188], eax
mov dword [0xa44198], 0
mov eax, dword [0xa4412c]
cmp eax, 0x1f
jle 0x4c28fa
movzx eax, byte [0xa44194]
movzx eax, al
movzx eax, word [eax + eax + 0x54a0c0]
movzx eax, ax
mov dword [0xa4419c], eax
mov dword [0xa441a0], 1
mov eax, dword [0xa441a4]
test eax, eax
je 0x4c2876
mov eax, dword [0xa441a4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [0xa441a0]
mov eax, dword [0x6ad18c]
mov ecx, dword [0xa4412c]
shl ecx, 2
add eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x20], 0xa441b8
mov dword [esp + 0x1c], 0xa441b4
mov dword [esp + 0x18], 0xa441b0
mov dword [esp + 0x14], 0xa441ac
mov dword [esp + 0x10], 0xa441a8
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xa4419c
mov dword [esp], eax
call fcn.00467a71
mov dword [0xa441bc], eax
mov eax, dword [0xa441a8]
mov dword [0xa441a4], eax
mov eax, dword [0xa441a8]
mov dword [0xa441c0], eax
mov dword [0xa441c4], 0
jmp 0x4c29ee
mov dword [0xa441c4], 0
mov eax, dword [0xa4412c]
cmp eax, 8
jne 0x4c2925
movzx eax, byte [0xa44194]
movzx eax, al
shl eax, 6
add eax, 0xa36140
mov dword [0xa441c0], eax
mov eax, dword [0xa4412c]
cmp eax, 0xe
jne 0x4c2949
movzx eax, byte [0xa44194]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa3a140
mov dword [0xa441c0], eax
mov eax, dword [0xa4412c]
cmp eax, 0x10
jne 0x4c296a
movzx eax, byte [0xa44194]
movzx eax, al
shl eax, 7
add eax, 0xa3a140
mov dword [0xa441c0], eax
mov eax, dword [0xa4412c]
cmp eax, 9
jne 0x4c2995
movzx eax, byte [0xa44194]
movzx eax, al
shl eax, 6
add eax, 0xa36140
mov dword [0xa441c0], eax
mov dword [0xa44198], 1
mov eax, dword [0xa4412c]
cmp eax, 0xf
jne 0x4c29c3
movzx eax, byte [0xa44194]
movzx eax, al
shl eax, 7
add eax, 8
add eax, 0xa3a140
mov dword [0xa441c0], eax
mov dword [0xa44198], 1
mov eax, dword [0xa4412c]
cmp eax, 0x11
jne 0x4c29ee
movzx eax, byte [0xa44194]
movzx eax, al
shl eax, 7
add eax, 0xa3a140
mov dword [0xa441c0], eax
mov dword [0xa44198], 1
movzx eax, byte [0xa44195]
and eax, 0xf
mov byte [0xa441c8], al
mov eax, dword [0x54a650]
test eax, eax
je 0x4c2a2f
movzx eax, byte [0xa44195]
movzx eax, al
sar eax, 4
and eax, 7
mov byte [0xa441c9], al
movzx eax, byte [0xa44195]
movzx eax, al
sar eax, 7
mov byte [0xa441ca], al
jmp 0x4c2a41
movzx eax, byte [0xa44195]
movzx eax, al
sar eax, 4
mov byte [0xa441c9], al
movzx eax, byte [0xa441ca]
test al, al
je 0x4c2a6a
mov eax, dword [0xa44144]
test eax, eax
je 0x4c2a6a
mov eax, dword [0x54a650]
test eax, eax
je 0x4c2a6a
movzx eax, byte [0xa441c9]
mov byte [0xa441c8], al
movzx eax, byte [0xa441c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa436a0]
mov dword [0xa44178], eax
movzx eax, byte [0xa441c9]
movzx eax, al
mov eax, dword [eax*4 + 0xa436a0]
mov dword [0xa4417c], eax
mov eax, dword [0x6bdb78]
mov ecx, dword [0xa4418c]
mov edx, dword [0x6bdb94]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa44180]
add ecx, edx
mov edx, dword [0xa44190]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa441cc], eax
mov edx, dword [0x6bdb94]
mov ecx, dword [0x6ad194]
mov eax, dword [0x6bdb74]
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 [0xa44128], eax
mov dword [0xa441d0], 0
jmp 0x4c2bcb
mov dword [0xa441d4], 0
jmp 0x4c2b7f
mov eax, dword [0xa441c0]
movzx eax, byte [eax]
test al, al
je 0x4c2b22
mov eax, dword [0xa441cc]
mov edx, dword [0xa44178]
mov dword [eax], edx
jmp 0x4c2b2f
mov eax, dword [0xa441cc]
mov edx, dword [0xa4417c]
mov dword [eax], edx
mov eax, dword [0xa44198]
test eax, eax
je 0x4c2b58
mov edx, dword [0xa441d4]
mov eax, dword [0xa44198]
and eax, edx
test eax, eax
je 0x4c2b65
mov eax, dword [0xa441c0]
add eax, 1
mov dword [0xa441c0], eax
jmp 0x4c2b65
mov eax, dword [0xa441c0]
add eax, 1
mov dword [0xa441c0], eax
mov eax, dword [0xa441cc]
add eax, 4
mov dword [0xa441cc], eax
mov eax, dword [0xa441d4]
add eax, 1
mov dword [0xa441d4], eax
mov edx, dword [0xa441d4]
mov eax, dword [0xa44130]
cmp edx, eax
setl al
test al, al
jne 0x4c2b07
mov eax, dword [0xa441cc]
mov edx, dword [0xa44128]
shl edx, 2
add eax, edx
mov dword [0xa441cc], eax
mov edx, dword [0xa441c0]
mov eax, dword [0xa441c4]
add eax, edx
mov dword [0xa441c0], eax
mov eax, dword [0xa441d0]
add eax, 1
mov dword [0xa441d0], eax
mov edx, dword [0xa441d0]
mov eax, dword [0xa44134]
cmp edx, eax
setl al
test al, al
jne 0x4c2afb
mov eax, dword [0x6bdb74]
movzx eax, byte [eax + 0x3c]
test al, al
je 0x4c3142
mov eax, dword [0xa44140]
test eax, eax
je 0x4c3142
mov edx, dword [0xa44158]
mov eax, dword [0xa44118]
cmp edx, eax
jne 0x4c3142
mov edx, dword [0xa4415c]
mov eax, dword [0xa4411c]
cmp edx, eax
jne 0x4c3142
mov eax, dword [0x6bdb74]
movzx eax, byte [eax + 0x3d]
movzx eax, al
mov dword [0xa441d8], eax
mov eax, dword [0x6bdb74]
movzx eax, byte [eax + 0x3e]
movzx eax, al
mov dword [0xa441dc], eax
mov byte [0xa441e0], 0
mov byte [0xa441e1], 0
mov byte [0xa441e2], 0
mov byte [0xa441e3], 0
mov eax, dword [0xa441dc]
test eax, eax
jne 0x4c2c87
mov eax, dword [0xa441d8]
test eax, eax
jne 0x4c3141
mov byte [0xa441e2], 1
jmp 0x4c2de5
mov edx, dword [0xa441dc]
mov eax, dword [0xa441d8]
cmp edx, eax
jge 0x4c2cac
mov eax, dword [0xa441dc]
mov byte [0xa441e3], al
mov byte [0xa441e2], 0xff
jmp 0x4c2de5
mov edx, dword [0xa441d8]
mov eax, dword [0xa441dc]
cmp edx, eax
jne 0x4c2cee
mov eax, dword [0xa441d8]
cmp eax, 3
jg 0x4c2cdb
mov eax, dword [0xa441d8]
mov byte [0xa441e3], al
mov byte [0xa441e2], 1
jmp 0x4c2de5
mov byte [0xa441e0], 1
mov byte [0xa441e2], 1
jmp 0x4c2de5
mov eax, dword [0xa441d8]
cmp eax, 2
jle 0x4c2d56
mov edx, dword [0xa441dc]
mov eax, dword [0xa441d8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
cmp eax, 1
jne 0x4c2d21
mov byte [0xa441e0], 1
mov byte [0xa441e2], 2
jmp 0x4c2de5
mov edx, dword [0xa441dc]
mov eax, dword [0xa441d8]
mov ecx, edx
sub ecx, eax
mov eax, ecx
cmp eax, 2
jne 0x4c2d4a
mov byte [0xa441e0], 1
mov byte [0xa441e2], 3
jmp 0x4c2de5
mov byte [0xa441e1], 1
jmp 0x4c2de5
mov eax, dword [0xa441d8]
cmp eax, 1
jg 0x4c2da3
mov eax, dword [0xa441dc]
cmp eax, 3
jg 0x4c2d90
mov eax, dword [0xa441d8]
mov byte [0xa441e3], al
mov eax, dword [0xa441dc]
mov edx, eax
mov eax, dword [0xa441d8]
mov ebx, edx
sub ebx, eax
mov eax, ebx
add eax, 1
mov byte [0xa441e2], al
jmp 0x4c2de5
mov eax, dword [0xa441d8]
mov byte [0xa441e3], al
mov byte [0xa441e2], 0xff
jmp 0x4c2de5
mov eax, dword [0xa441dc]
cmp eax, 3
jne 0x4c2dbd
mov byte [0xa441e3], 2
mov byte [0xa441e2], 2
jmp 0x4c2de5
mov eax, dword [0xa441dc]
cmp eax, 4
jne 0x4c2dd7
mov byte [0xa441e0], 1
mov byte [0xa441e2], 3
jmp 0x4c2de5
mov byte [0xa441e3], 2
mov byte [0xa441e2], 0xff
mov edx, dword [0x6ad194]
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa441e4], eax
mov edx, dword [0x6ad190]
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [0xa441e8], eax
movzx eax, byte [0xa441e1]
test al, al
je 0x4c2f1c
mov eax, dword [0xa441e8]
sub eax, 1
mov dword [0xa441d0], eax
mov eax, dword [0xa441e8]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov byte [0xa441e2], al
movzx eax, byte [0xa44195]
and eax, 0xf
mov byte [0xa441c8], al
movzx eax, byte [0xa441c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa436a0]
mov dword [0xa44178], eax
mov eax, dword [0x6bdb78]
mov ecx, dword [0xa4418c]
mov edx, dword [0xa441d0]
add ecx, edx
mov edx, dword [0x6bdb94]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa44180]
add ecx, edx
mov edx, dword [0xa44190]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa441cc], eax
mov dword [0xa441d4], 0
jmp 0x4c2ed8
mov eax, dword [0xa441cc]
mov edx, dword [0xa44178]
mov dword [eax], edx
mov eax, dword [0xa441cc]
add eax, 4
mov dword [0xa441cc], eax
mov eax, dword [0xa441d4]
add eax, 1
mov dword [0xa441d4], eax
mov edx, dword [0xa441d4]
mov eax, dword [0xa441e4]
cmp edx, eax
setl al
test al, al
jne 0x4c2eb1
mov eax, dword [0xa441d0]
sub eax, 1
mov dword [0xa441d0], eax
movzx eax, byte [0xa441e2]
sub eax, 1
mov byte [0xa441e2], al
movzx eax, byte [0xa441e2]
test al, al
je 0x4c3142
jmp 0x4c2e6d
movzx eax, byte [0xa441e0]
test al, al
je 0x4c3020
mov eax, dword [0xa441e8]
sub eax, 1
mov dword [0xa441d0], eax
mov eax, dword [0xa441d0]
cmp eax, 0xf
jne 0x4c2f4c
mov dword [0xa441d0], 0xe
movzx eax, byte [0xa44195]
and eax, 0xf
mov byte [0xa441c8], al
movzx eax, byte [0xa441c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa436a0]
mov dword [0xa44178], eax
mov eax, dword [0x6bdb78]
mov ecx, dword [0xa4418c]
mov edx, dword [0xa441d0]
add ecx, edx
mov edx, dword [0x6bdb94]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa44180]
add ecx, edx
mov edx, dword [0xa44190]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa441cc], eax
mov dword [0xa441d4], 0
jmp 0x4c2fdc
mov eax, dword [0xa441cc]
mov edx, dword [0xa44178]
mov dword [eax], edx
mov eax, dword [0xa441cc]
add eax, 4
mov dword [0xa441cc], eax
mov eax, dword [0xa441d4]
add eax, 1
mov dword [0xa441d4], eax
mov edx, dword [0xa441d4]
mov eax, dword [0xa441e4]
cmp edx, eax
setl al
test al, al
jne 0x4c2fb5
mov eax, dword [0xa441d0]
sub eax, 1
mov dword [0xa441d0], eax
movzx eax, byte [0xa441e2]
sub eax, 1
mov byte [0xa441e2], al
movzx eax, byte [0xa441e2]
test al, al
je 0x4c3142
jmp 0x4c2f71
movzx eax, byte [0xa441e3]
movzx edx, al
mov eax, dword [0xa441e8]
cmp edx, eax
jge 0x4c3142
movzx eax, byte [0xa441e3]
movzx eax, al
mov dword [0xa441d0], eax
movzx eax, byte [0xa44195]
and eax, 0xf
mov byte [0xa441c8], al
movzx eax, byte [0xa441c8]
movzx eax, al
mov eax, dword [eax*4 + 0xa436a0]
mov dword [0xa44178], eax
movzx eax, byte [0xa441e2]
cmp al, 0xff
jne 0x4c3092
mov eax, dword [0xa441e8]
mov edx, eax
movzx eax, byte [0xa441e3]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov byte [0xa441e2], al
jmp 0x4c3092
nop
mov eax, dword [0x6bdb78]
mov ecx, dword [0xa4418c]
mov edx, dword [0xa441d0]
add ecx, edx
mov edx, dword [0x6bdb94]
imul edx, ecx
mov ecx, edx
mov edx, dword [0xa44180]
add ecx, edx
mov edx, dword [0xa44190]
add edx, ecx
shl edx, 2
add eax, edx
mov dword [0xa441cc], eax
mov dword [0xa441d4], 0
jmp 0x4c30fd
mov eax, dword [0xa441cc]
mov edx, dword [0xa44178]
mov dword [eax], edx
mov eax, dword [0xa441cc]
add eax, 4
mov dword [0xa441cc], eax
mov eax, dword [0xa441d4]
add eax, 1
mov dword [0xa441d4], eax
mov edx, dword [0xa441d4]
mov eax, dword [0xa441e4]
cmp edx, eax
setl al
test al, al
jne 0x4c30d6
mov eax, dword [0xa441d0]
add eax, 1
mov dword [0xa441d0], eax
movzx eax, byte [0xa441e2]
sub eax, 1
mov byte [0xa441e2], al
movzx eax, byte [0xa441e2]
test al, al
jne 0x4c3091
jmp 0x4c3142
nop
jmp 0x4c3142
nop
mov edx, dword [0x6ad194]
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa44190]
add eax, edx
mov dword [0xa44190], eax
mov eax, dword [0xa44118]
add eax, 1
mov dword [0xa44118], eax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0xa44118]
cmp edx, eax
setg al
test al, al
jne 0x4c26ab
mov edx, dword [0x6ad190]
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x30]
shl eax, 2
add eax, edx
mov edx, dword [eax]
mov eax, dword [0xa4418c]
add eax, edx
mov dword [0xa4418c], eax
mov eax, dword [0xa4411c]
add eax, 1
mov dword [0xa4411c], eax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x16]
movzx edx, ax
mov eax, dword [0xa4411c]
cmp edx, eax
setg al
test al, al
jne 0x4c2692
mov eax, dword [0xa44144]
mov dword [0xa44160], eax
mov eax, dword [0xa44140]
mov dword [0xa44164], eax
mov eax, dword [0xa44158]
mov dword [0x54a874], eax
mov eax, dword [0xa4415c]
mov dword [0x54a878], eax
mov dword [0x6c7920], 1
movzx eax, byte [0xa440f0]
test al, al
je 0x4c321c
call fcn.004c1c9e
mov eax, dword [0xa440f4]
mov edx, eax
sar edx, 0x1f
mov dword [0xa441f0], eax
mov dword [0xa441f4], edx
jmp 0x4c3a11
mov eax, dword [0x6bdb74]
movzx eax, byte [eax + 0x19]
cmp al, 0x20
jne 0x4c3690
movzx eax, byte [0xa440f0]
test al, al
jne 0x4c33e7
mov dword [0xa441f8], 0
mov dword [0xa441fc], 0
mov dword [0xa44178], 0xffffffff
mov dword [0xa4417c], 0
jmp 0x4c330a
mov eax, dword [0xa4417c]
shl eax, 5
add eax, 0x6ad020
mov eax, dword [eax]
cmp eax, 4
je 0x4c32ab
mov eax, dword [0xa4417c]
shl eax, 5
add eax, 0x6ad020
mov eax, dword [eax]
cmp eax, 3
jne 0x4c32fd
mov eax, dword [0xa4417c]
shl eax, 5
add eax, 0x6ad020
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [0xa441f8]
mov edx, dword [0xa441fc]
cmp ebx, edx
jl 0x4c32fd
cmp ebx, edx
jg 0x4c32d5
cmp ecx, eax
jbe 0x4c32fd
mov eax, dword [0xa4417c]
shl eax, 5
add eax, 0x6ad020
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0xa441f8], eax
mov dword [0xa441fc], edx
mov eax, dword [0xa4417c]
mov dword [0xa44178], eax
mov eax, dword [0xa4417c]
add eax, 1
mov dword [0xa4417c], eax
mov eax, dword [0xa4417c]
cmp eax, 2
setle al
test al, al
jne 0x4c3283
mov eax, dword [0x6acf9c]
test eax, eax
jne 0x4c34bb
mov eax, dword [0xa44178]
cmp eax, 0xffffffff
je 0x4c34c2
mov eax, dword [0x6c7920]
test eax, eax
je 0x4c34be
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa44100], eax
mov eax, dword [0xa44178]
shl eax, 5
add eax, 0x6ad030
mov edx, dword [eax + 4]
mov eax, dword [0xa44178]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax + 8]
imul eax, edx
lea edx, [eax*4]
mov eax, dword [0xa44100]
cmp edx, eax
jne 0x4c34c1
mov eax, dword [0x54a854]
test eax, eax
je 0x4c3c06
mov eax, dword [0xa44100]
mov ecx, eax
mov eax, dword [0x6bdb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa44178]
shl eax, 5
add eax, 0x6ad030
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 0x4c3c09
jmp 0x4c34c2
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
shl eax, 2
mov dword [0xa44100], eax
mov edx, dword [0xa44100]
mov eax, dword [0x54a86c]
cmp edx, eax
je 0x4c3444
mov eax, dword [0xa43694]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa44100]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa43694], eax
mov eax, dword [0xa44100]
mov dword [0x54a86c], eax
jmp 0x4c3495
mov eax, dword [0x6acf9c]
test eax, eax
jne 0x4c3491
mov eax, dword [0x54a854]
test eax, eax
je 0x4c3c0c
mov eax, dword [0xa44100]
mov ecx, eax
mov eax, dword [0x6bdb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa43694]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4c3494
mov eax, dword [0x6c7920]
test eax, eax
jne 0x4c3c0f
jmp 0x4c3495
nop
jmp 0x4c3495
nop
mov eax, dword [0xa44100]
mov ecx, eax
mov eax, dword [0x6bdb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa43694]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4c34c2
nop
jmp 0x4c34c2
nop
jmp 0x4c34c2
nop
mov edx, dword [0x6bdb94]
mov eax, dword [0x6bdb98]
imul eax, edx
shl eax, 2
mov dword [0xa44200], eax
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov edx, dword [eax + 0xc]
mov eax, dword [0xa44200]
cmp edx, eax
jge 0x4c353f
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa440f4]
mov eax, dword [0xa44200]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6ad030
mov dword [edx], eax
mov edx, dword [0xa440f4]
mov eax, dword [0xa44200]
shl edx, 5
add edx, 0x6ad030
mov dword [edx + 0xc], eax
mov edx, dword [0xa440f4]
mov eax, dword [0x6bdb94]
shl edx, 5
add edx, 0x6ad030
mov dword [edx + 4], eax
mov edx, dword [0xa440f4]
mov eax, dword [0x6bdb98]
shl edx, 5
add edx, 0x6ad030
mov dword [edx + 8], eax
movzx eax, byte [0xa440f0]
test al, al
jne 0x4c35cc
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov edx, dword [eax + 4]
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax + 8]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0x6bdb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x4c3a0d
mov eax, dword [0xa43694]
mov dword [0xa44204], eax
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax]
mov dword [0xa44208], eax
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov edx, dword [eax + 4]
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax + 8]
imul eax, edx
mov dword [0xa4420c], eax
mov eax, dword [0xa4420c]
test eax, eax
jle 0x4c3a0d
jmp 0x4c3675
mov eax, dword [0xa44204]
mov edx, dword [eax]
mov dword [0xa44210], edx
add eax, 4
mov dword [0xa44204], eax
mov eax, dword [0xa44208]
mov edx, dword [0xa44210]
mov ecx, edx
and ecx, 0xff00ff00
mov edx, dword [0xa44210]
and edx, 0xff0000
shr edx, 0x10
or ecx, edx
mov edx, dword [0xa44210]
and edx, 0xff
shl edx, 0x10
or edx, ecx
mov dword [eax], edx
add eax, 4
mov dword [0xa44208], eax
mov eax, dword [0xa4420c]
test eax, eax
setne dl
sub eax, 1
mov dword [0xa4420c], eax
test dl, dl
jne 0x4c3621
jmp 0x4c3a0d
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x20]
cmp ax, 0xa
jne 0x4c3731
call fcn.00467a9f
and eax, 0x200
mov dword [0xa44178], eax
mov eax, dword [0xa44178]
test eax, eax
je 0x4c36c5
mov dword [0xa44178], 1
mov dword [0xa44100], 0
jmp 0x4c3722
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x48]
mov edx, dword [0xa44100]
shl edx, 2
lea ecx, [eax + edx]
mov edx, dword [0xa44178]
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x48]
mov ebx, dword [0xa44100]
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 + 0xa360e0]
mov dword [ecx], eax
mov eax, dword [0xa44100]
add eax, 1
mov dword [0xa44100], eax
mov eax, dword [0xa44100]
cmp eax, 3
setle al
test al, al
jne 0x4c36d1
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
imul eax, edx
mov dword [0xa44100], eax
mov eax, dword [0x6bdb74]
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 [0xa44178], eax
mov edx, dword [0xa44100]
mov eax, dword [0x54a86c]
cmp edx, eax
je 0x4c37a9
mov eax, dword [0xa43694]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [0xa44100]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [0xa43694], eax
mov eax, dword [0xa44100]
mov dword [0x54a86c], eax
jmp 0x4c3827
mov eax, dword [0x6acf9c]
test eax, eax
jne 0x4c3820
mov eax, dword [0x54a854]
test eax, eax
je 0x4c3c12
mov eax, dword [0xa44100]
mov ecx, eax
mov eax, dword [0x6bdb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa43694]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4c3823
mov eax, dword [0xa44178]
shl eax, 2
mov edx, eax
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa436a0
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4c3826
mov eax, dword [0x6c7920]
test eax, eax
jne 0x4c3c15
jmp 0x4c3827
nop
jmp 0x4c3827
nop
jmp 0x4c3827
nop
mov edx, dword [0x6bdb94]
mov eax, dword [0x6bdb98]
imul eax, edx
shl eax, 2
mov dword [0xa44214], eax
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov edx, dword [eax + 0xc]
mov eax, dword [0xa44214]
cmp edx, eax
jge 0x4c38a4
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0xa440f4]
mov eax, dword [0xa44214]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, ebx
shl edx, 5
add edx, 0x6ad030
mov dword [edx], eax
mov edx, dword [0xa440f4]
mov eax, dword [0xa44214]
shl edx, 5
add edx, 0x6ad030
mov dword [edx + 0xc], eax
mov edx, dword [0xa440f4]
mov eax, dword [0x6bdb94]
shl edx, 5
add edx, 0x6ad030
mov dword [edx + 4], eax
mov edx, dword [0xa440f4]
mov eax, dword [0x6bdb98]
shl edx, 5
add edx, 0x6ad030
mov dword [edx + 8], eax
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax]
mov dword [0x6bdb78], eax
mov eax, dword [0xa44100]
mov ecx, eax
mov eax, dword [0x6bdb74]
mov edx, dword [eax + 0x40]
mov eax, dword [0xa43694]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [0xa44178]
shl eax, 2
mov edx, eax
mov eax, dword [0x6bdb74]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], 0xa436a0
call sub.msvcrt.dll_memcpy
movzx eax, byte [0xa440f0]
test al, al
je 0x4c3940
call fcn.004c1c9e
mov eax, dword [0xa43694]
mov dword [0xa44218], eax
mov eax, dword [0x6bdb78]
mov dword [0xa4421c], eax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x14]
movzx eax, ax
mov dword [0xa44190], eax
mov eax, dword [0x6bdb74]
movzx eax, word [eax + 0x16]
movzx eax, ax
mov dword [0xa4418c], eax
mov dword [0xa4411c], 0
jmp 0x4c39e7
mov dword [0xa44118], 0
jmp 0x4c39c6
mov edx, dword [0xa4421c]
mov eax, dword [0xa44218]
movzx ecx, byte [eax]
movzx ecx, cl
mov ecx, dword [ecx*4 + 0xa436a0]
mov dword [edx], ecx
add edx, 4
mov dword [0xa4421c], edx
add eax, 1
mov dword [0xa44218], eax
mov eax, dword [0xa44118]
add eax, 1
mov dword [0xa44118], eax
mov edx, dword [0xa44118]
mov eax, dword [0xa44190]
cmp edx, eax
setl al
test al, al
jne 0x4c398e
mov eax, dword [0xa4411c]
add eax, 1
mov dword [0xa4411c], eax
mov edx, dword [0xa4411c]
mov eax, dword [0xa4418c]
cmp edx, eax
setl al
test al, al
jne 0x4c3982
movzx eax, byte [0xa440f0]
test al, al
je 0x4c3a10
call fcn.004c1c9e
jmp 0x4c3a10
nop
jmp 0x4c3a11
nop
mov dword [0x6acf9c], 0
mov dword [0x6c7920], 1
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad020
mov dword [eax], 3
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad020
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x6ad088], eax
mov dword [0x6ad08c], edx
mov eax, dword [0x6a7b4c]
test eax, eax
je 0x4c3c16
mov eax, dword [0x6ad100]
test eax, eax
je 0x4c3c16
mov eax, dword [0xa44220]
test eax, eax
jne 0x4c3abf
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 [0xa44220], eax
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax + 4]
mov dword [0xa44224], eax
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov eax, dword [eax + 8]
mov dword [0xa44228], eax
mov eax, dword [0xa4422c]
add eax, 1
mov dword [0xa4422c], eax
mov eax, dword [0xa4422c]
mov dword [0xa44230], eax
mov eax, dword [0xa44224]
mov dword [0xa44234], eax
mov eax, dword [0xa44228]
mov dword [0xa44238], eax
mov eax, dword [0xa44220]
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 [0xa44224]
mov eax, dword [0xa44228]
imul eax, edx
shl eax, 2
mov ecx, eax
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad030
mov edx, dword [eax]
mov eax, dword [0xa44220]
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 [0xa44220]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call eax
sub esp, 4
mov eax, dword [0xa44220]
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 [0xa44220]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0xa44230
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_WriteFile]
call eax
sub esp, 0x14
jmp 0x4c3c16
nop
jmp 0x4c3c16
nop
jmp 0x4c3c16
nop
jmp 0x4c3c16
nop
jmp 0x4c3c16
nop
jmp 0x4c3c16
nop
jmp 0x4c3c16
nop
jmp 0x4c3c16
nop
jmp 0x4c3c16
nop
jmp 0x4c3c16
nop
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad020
mov eax, dword [eax]
cmp eax, 2
jne 0x4c3c5b
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad020
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [0x6ad088], eax
mov dword [0x6ad08c], edx
mov eax, dword [0xa440f4]
shl eax, 5
add eax, 0x6ad020
mov dword [eax], 1
mov eax, dword [0x6c7934]
cmp eax, 1
jne 0x4c3c80
mov dword [0x6c7934], 2
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
mov eax, dword [0x54a2d8]
cmp eax, 0xffffffff
jne 0x4c3c94
mov dword [0x54a2d8], 0
mov dword [0xa43640], 1
nop
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret