Function at 0x47a630
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x407c
call fcn.004889d0
mov eax, dword [0x50b06c]
xor eax, esp
mov dword [esp + 0x4078], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, ecx
mov dword [esp + 0xc], eax
push edi
xor edi, edi
mov dword [esp + 0x30], edx
push 0xffffffffffffffff
mov cl, byte [esi + 0x98]
mov bh, byte [esi + 0x99]
mov bl, byte [esi + 0x9a]
mov byte [esp + 0x27], cl
mov ecx, dword [esi + 0x94]
mov dword [eax], edi
lea eax, [esp + 0x84]
push dword [0x50f554]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x17], bh
mov byte [esp + 0x16], bl
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x47ba0d
mov edx, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
nop dword [eax]
cmp dword [0x50baf8], 0
mov eax, dword [esp + 0x2c]
mov ecx, dword [edx + ecx*8]
mov dword [esp + 0x44], ecx
mov eax, dword [edx + eax*8 + 4]
mov dword [esp + 0x38], eax
jne 0x47a80e
test ecx, ecx
je 0x47a80e
push 0
push 0
push ecx
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
test edi, edi
je 0x47b968
lea esi, [edi*2 + 2]
mov eax, 0x2000
cmp eax, esi
mov dword [esp + 0x34], esi
sbb eax, eax
neg eax
mov dword [esp + 0x1c], eax
cmp esi, 0x2000
jbe 0x47a737
push esi
call dword [0x50bacc]
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x47a73b
mov eax, dword [esp + 0x14]
push edi
push eax
push dword [esp + 0x4c]
push dword [esp + 0x44]
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x47b945
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x28], eax
mov edx, 0x2000
nop dword [eax]
mov esi, edi
sub esi, eax
cmp esi, 0x2000
cmova esi, edx
cmp dword [ecx], 0
jne 0x47a7c1
push 0
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x1c]
push esi
lea eax, [ecx + eax*2]
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x47a7b4
call dword [0x4eb0cc]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
jmp 0x47a7b8
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov edx, 0x2000
add eax, esi
mov dword [esp + 0x28], eax
cmp eax, edi
jb 0x47a770
cmp dword [esp + 0x34], 0x2000
jbe 0x47a803
call fcn.004a905f
push dword [esp + 0x14]
mov esi, dword [eax]
call dword [0x50bad8]
add esp, 4
call fcn.004a905f
mov dword [esp + 0x1c], 0
mov dword [eax], esi
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
jmp 0x47ab62
xor eax, eax
mov dword [esp + 0x28], eax
test ecx, ecx
je 0x47ab66
nop dword [eax]
mov ecx, dword [esp + 0x38]
mov dh, bl
mov dl, byte [eax + ecx]
mov cl, byte [esp + 0x23]
mov al, dl
test cl, cl
jne 0x47a877
not al
movzx eax, al
bsr eax, eax
mov dword [esp + 0x34], eax
je 0x47a8ad
cmp eax, 7
jne 0x47a84b
movzx ecx, dl
jmp 0x47a8b2
cmp eax, 5
ja 0x47a8ad
mov ecx, 8
sub ecx, eax
mov eax, 0xff
sar eax, cl
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
movzx eax, dl
and ecx, eax
mov al, 6
sub al, byte [esp + 0x34]
mov byte [esp + 0x23], al
jmp 0x47a896
and al, 0xc0
cmp al, 0x80
jne 0x47a8a4
dec cl
movzx eax, dl
mov byte [esp + 0x23], cl
and eax, 0x3f
mov ecx, dword [esp + 0x24]
shl ecx, 6
or ecx, eax
mov al, byte [esp + 0x23]
mov dword [esp + 0x24], ecx
test al, al
jne case.0x47a8fc.27
jmp 0x47a8b6
dec dword [esp + 0x28]
mov byte [esp + 0x23], 0
mov ecx, 0xfffd
mov dword [esp + 0x24], ecx
test bl, bl
jne 0x47a8e0
cmp ecx, 0x1b
je 0x47a8d9
cmp ecx, 0x9b
jne 0x47aca3
mov bl, 4
mov byte [esi + 0x9b], 0
jmp 0x47ab4b
mov bl, 2
jmp 0x47ab4b
cmp bl, 2
jne 0x47af3b
lea eax, [ecx - 0x1b]
cmp eax, 0x48
ja case.0x47a8fc.28
movzx eax, byte [eax + 0x47ba34]
jmp dword [eax*4 + 0x47ba18]
mov bl, 8
jmp 0x47ab4b
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov ecx, 0x2000
mov esi, edi
sub esi, ebx
cmp esi, 0x2000
cmova esi, ecx
cmp dword [eax], 0
jne 0x47a964
push 0
lea eax, [esp + 0x54]
push eax
mov eax, dword [esp + 0x1c]
push esi
lea eax, [eax + ebx*2]
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x47a95b
call dword [0x4eb0cc]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, ecx
jmp 0x47a95f
mov eax, dword [esp + 0x10]
mov ecx, 0x2000
add ebx, esi
cmp ebx, edi
jb 0x47a915
cmp dword [esp + 0x1c], 0
je 0x47a99f
call fcn.004a905f
push dword [esp + 0x14]
mov esi, dword [eax]
call dword [0x50bad8]
add esp, 4
call fcn.004a905f
mov dword [esp + 0x1c], 0
mov dword [eax], esi
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x10]
xor eax, eax
xor edi, edi
mov dword [esp + 0x3c], eax
mov ax, word [0x50bae8]
movzx ebx, ax
cmp dword [esi], edi
jne 0x47aa79
movzx eax, ax
push eax
mov eax, dword [esp + 0x1c]
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
invalid
test eax, eax
jne 0x47a9e5
call dword [0x4eb0cc]
mov dword [esi], eax
mov esi, dword [esp + 0x18]
jmp 0x47ab45
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x3c]
push esi
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
test eax, eax
je 0x47aa6d
nop
lea eax, [esp + 0x68]
push eax
mov eax, dword [esp + 0x1c]
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x47aa6d
movsx eax, word [esp + 0x68]
movsx ecx, word [esp + 0x6a]
imul ecx, eax
lea eax, [esp + 0x40]
push eax
mov eax, dword [esp + 0x1c]
push esi
push ecx
push 0x20
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
test eax, eax
je 0x47aa62
lea eax, [esp + 0x40]
push eax
mov eax, dword [esp + 0x1c]
push esi
push dword [esp + 0x48]
push ebx
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
test eax, eax
jne 0x47aa82
call dword [0x4eb0cc]
cmp eax, 0x57
je 0x47aa00
call dword [0x4eb0cc]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov esi, dword [esp + 0x18]
jmp 0x47ab45
lea ecx, [esp + 0x68]
mov dword [0x50baf4], edi
call fcn.00479cd0
mov esi, dword [esp + 0x18]
jmp 0x47ab45
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov ecx, 0x2000
mov esi, edi
sub esi, ebx
cmp esi, 0x2000
cmova esi, ecx
cmp dword [eax], 0
jne 0x47aaf4
push 0
lea eax, [esp + 0x58]
push eax
mov eax, dword [esp + 0x1c]
push esi
lea eax, [eax + ebx*2]
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x47aaeb
call dword [0x4eb0cc]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, ecx
jmp 0x47aaef
mov eax, dword [esp + 0x10]
mov ecx, 0x2000
add ebx, esi
cmp ebx, edi
jb 0x47aaa5
cmp dword [esp + 0x1c], 0
je 0x47ab2f
call fcn.004a905f
push dword [esp + 0x14]
mov esi, dword [eax]
call dword [0x50bad8]
add esp, 4
call fcn.004a905f
mov dword [esp + 0x1c], 0
mov dword [eax], esi
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
push dword [esp + 0x10]
xor edi, edi
mov dl, 1
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.0047a460
add esp, 4
mov bh, byte [esp + 0xf]
xor bl, bl
mov byte [esp + 0xe], bl
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x44]
jb 0x47a820
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x2c], ecx
cmp ecx, 1
jb 0x47a6c0
mov ecx, dword [esp + 0x10]
xor eax, eax
mov edx, 0x2000
mov dword [esp + 0x2c], eax
nop word [eax + eax]
mov esi, edi
sub esi, eax
cmp esi, 0x2000
cmova esi, edx
cmp dword [ecx], 0
jne 0x47b986
push 0
lea ecx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x1c]
push esi
lea eax, [ecx + eax*2]
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x47b979
call dword [0x4eb0cc]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
jmp 0x47b97d
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov ecx, 0x2000
nop word [eax + eax]
mov esi, edi
sub esi, ebx
cmp esi, 0x2000
cmova esi, ecx
cmp dword [eax], 0
jne 0x47ac3f
push 0
lea eax, [esp + 0x5c]
push eax
mov eax, dword [esp + 0x1c]
push esi
lea eax, [eax + ebx*2]
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x47ac36
call dword [0x4eb0cc]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, ecx
jmp 0x47ac3a
mov eax, dword [esp + 0x10]
mov ecx, 0x2000
add ebx, esi
cmp ebx, edi
jb 0x47abf0
cmp dword [esp + 0x1c], 0
je 0x47ac7a
call fcn.004a905f
push dword [esp + 0x14]
mov esi, dword [eax]
call dword [0x50bad8]
add esp, 4
call fcn.004a905f
mov dword [esp + 0x1c], 0
mov dword [eax], esi
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
push dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov dl, 1
mov ecx, esi
xor edi, edi
call fcn.0047a510
jmp 0x47ab42
lea eax, [ecx - 0x40]
cmp eax, 0x1f
jbe case.0x47b05b.73
mov byte [esp + 0xe], 0
cmp ecx, 0xffff
jbe 0x47acb5
mov dword [esp + 0x24], 0xfffd
jmp 0x47acc7
cmp ecx, 0xa
je 0x47ae01
cmp ecx, 0xd
je 0x47ad8c
mov ecx, 0x2000
mov eax, ecx
sub eax, edi
cmp eax, 1
jae 0x47ad70
mov eax, dword [esp + 0x10]
xor ebx, ebx
nop
mov esi, edi
sub esi, ebx
cmp esi, 0x2000
cmova esi, ecx
cmp dword [eax], 0
jne 0x47ad2f
push 0
lea eax, [esp + 0x60]
push eax
mov eax, dword [esp + 0x1c]
push esi
lea eax, [eax + ebx*2]
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x47ad26
call dword [0x4eb0cc]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, ecx
jmp 0x47ad2a
mov eax, dword [esp + 0x10]
mov ecx, 0x2000
add ebx, esi
cmp ebx, edi
jb 0x47ace0
cmp dword [esp + 0x1c], 0
je 0x47ad6a
call fcn.004a905f
push dword [esp + 0x14]
mov esi, dword [eax]
call dword [0x50bad8]
add esp, 4
call fcn.004a905f
mov dword [esp + 0x1c], 0
mov dword [eax], esi
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
mov eax, dword [esp + 0x24]
mov bl, byte [esp + 0xe]
mov word [esp + edi*2 + 0x80], ax
inc edi
xor bh, bh
mov byte [esp + 0xf], bh
jmp case.0x47a8fc.27
cmp bh, 0xa
je 0x47af2c
mov edx, 0x2000
mov eax, edx
sub eax, edi
cmp eax, 1
jae 0x47af23
mov eax, dword [esp + 0x10]
xor ebx, ebx
nop dword [eax]
mov esi, edi
sub esi, ebx
cmp esi, 0x2000
cmova esi, edx
cmp dword [eax], 0
jne 0x47aeda
push 0
lea eax, [esp + 0x68]
push eax
mov eax, dword [esp + 0x1c]
push esi
lea eax, [eax + ebx*2]
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_WriteConsoleW]
add byte [ebp - 0x1c7af040], al
add byte [eax], al
invalid
call dword [0x4eb0cc]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, ecx
jmp 0x47aed5
cmp bh, 0xd
je 0x47ad95
mov edx, 0x2000
mov eax, edx
sub eax, edi
cmp eax, 2
jae 0x47aeb4
mov eax, dword [esp + 0x10]
xor ebx, ebx
nop
mov esi, edi
sub esi, ebx
cmp esi, 0x2000
cmova esi, edx
cmp dword [eax], 0
jne 0x47ae6f
push 0
lea eax, [esp + 0x64]
push eax
mov eax, dword [esp + 0x1c]
push esi
lea eax, [eax + ebx*2]
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x47ae66
call dword [0x4eb0cc]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, ecx
jmp 0x47ae6a
mov eax, dword [esp + 0x10]
mov edx, 0x2000
add ebx, esi
cmp ebx, edi
jb 0x47ae20
cmp dword [esp + 0x1c], 0
je 0x47aeaa
call fcn.004a905f
push dword [esp + 0x14]
mov esi, dword [eax]
call dword [0x50bad8]
add esp, 4
call fcn.004a905f
mov dword [esp + 0x1c], 0
mov dword [eax], esi
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
mov ecx, dword [esp + 0x24]
mov bl, byte [esp + 0xe]
mov bh, cl
mov dword [esp + edi*2 + 0x80], 0xa000d
add edi, 2
mov byte [esp + 0xf], bh
jmp case.0x47a8fc.27
mov eax, dword [esp + 0x10]
mov edx, 0x2000
add ebx, esi
cmp ebx, edi
jb 0x47adb0
cmp dword [esp + 0x1c], 0
je 0x47af19
call fcn.004a905f
push dword [esp + 0x14]
mov esi, dword [eax]
call dword [0x50bad8]
add esp, 4
call fcn.004a905f
mov dword [esp + 0x1c], 0
mov dword [eax], esi
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
mov ecx, dword [esp + 0x24]
mov word [esp + edi*2 + 0x80], cx
inc edi
mov bl, byte [esp + 0xe]
mov bh, cl
mov byte [esp + 0xf], bh
jmp case.0x47a8fc.27
test bl, 4
je 0x47b8d1
test bl, 0x10
jne 0x47b8be
lea eax, [ecx - 0x30]
cmp eax, 9
ja 0x47afc4
test bl, 0x20
jne 0x47af8a
mov al, byte [esi + 0x9b]
cmp al, 4
jb 0x47af6c
or bl, 0x10
jmp 0x47ab4b
inc al
or bl, 0x20
mov byte [esi + 0x9b], al
add ecx, 0xffffffd0
movzx eax, al
mov word [esi + eax*2 + 0x9a], cx
jmp 0x47ab4b
movzx eax, byte [esi + 0x9b]
lea ecx, [esi + eax*2]
movzx eax, word [ecx + 0x9a]
lea eax, [eax + eax*4]
add eax, eax
cmp eax, 0xffff
jbe 0x47afaf
or bl, 0x10
jmp 0x47ab4b
mov edx, dword [esp + 0x24]
add eax, 0xffffffd0
add eax, edx
mov word [ecx + 0x9a], ax
jmp case.0x47a8fc.27
cmp ecx, 0x3b
jne 0x47b002
test bl, 0x20
je 0x47afd6
and bl, 0xdf
jmp 0x47ab4b
mov al, byte [esi + 0x9b]
cmp al, 4
jb 0x47afe8
or bl, 0x10
jmp 0x47ab4b
inc al
xor ecx, ecx
mov byte [esi + 0x9b], al
movzx eax, al
mov word [esi + eax*2 + 0x9a], cx
jmp case.0x47a8fc.27
cmp ecx, 0x3f
jne 0x47b025
test bl, 0x20
jne 0x47af64
cmp byte [esi + 0x9b], 0
je case.0x47a8fc.27
or bl, 0x10
jmp 0x47ab4b
lea eax, [ecx - 0x40]
cmp eax, 0x3e
ja 0x47af64
mov cl, byte [esi + 0x9b]
mov eax, dword [esp + 0x24]
test cl, cl
jne 0x47b048
cmp eax, 0x5b
je 0x47af64
add eax, 0xffffffbf
cmp eax, 0x34
ja case.0x47b05b.73
movzx eax, byte [eax + 0x47bac0]
jmp dword [eax*4 + 0x47ba80]
xor ebx, ebx
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b064
cmp dword [esp + 0x1c], 0
je 0x47b0b7
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
cmp byte [esi + 0x9b], 0
je 0x47b0cf
movzx eax, word [esi + 0x9c]
jmp 0x47b0d4
mov eax, 1
push dword [esp + 0x10]
neg eax
xor edx, edx
push 1
push eax
push 1
mov ecx, esi
call fcn.00479df0
add esp, 0x10
jmp 0x47ab45
xor ebx, ebx
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b0f2
cmp dword [esp + 0x1c], 0
je 0x47b145
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
cmp byte [esi + 0x9b], 0
je 0x47b15d
movzx eax, word [esi + 0x9c]
jmp 0x47b162
mov eax, 1
push dword [esp + 0x10]
xor edx, edx
mov ecx, esi
push 1
push eax
push 1
call fcn.00479df0
add esp, 0x10
jmp 0x47ab45
xor ebx, ebx
nop
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b180
cmp dword [esp + 0x1c], 0
je 0x47b1d3
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
cmp byte [esi + 0x9b], 0
je 0x47b1eb
movzx edx, word [esi + 0x9c]
jmp 0x47b1f0
mov edx, 1
push dword [esp + 0x10]
mov ecx, esi
push 1
push 0
push 1
call fcn.00479df0
add esp, 0x10
jmp 0x47ab45
xor ebx, ebx
nop dword [eax + eax]
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b210
cmp dword [esp + 0x1c], 0
je 0x47b263
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
cmp byte [esi + 0x9b], 0
je 0x47b27b
movzx edx, word [esi + 0x9c]
jmp 0x47b280
mov edx, 1
push dword [esp + 0x10]
neg edx
mov ecx, esi
push 1
push 0
push 1
call fcn.00479df0
add esp, 0x10
jmp 0x47ab45
xor ebx, ebx
nop dword [eax]
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b2a0
cmp dword [esp + 0x1c], 0
je 0x47b2f3
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
cmp byte [esi + 0x9b], 0
je 0x47b30b
movzx eax, word [esi + 0x9c]
jmp 0x47b310
mov eax, 1
push dword [esp + 0x10]
xor edx, edx
mov ecx, esi
push 1
push eax
push 0
call fcn.00479df0
add esp, 0x10
jmp 0x47ab45
xor ebx, ebx
nop dword [eax]
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b330
cmp dword [esp + 0x1c], 0
je 0x47b383
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
cmp byte [esi + 0x9b], 0
je 0x47b39b
movzx eax, word [esi + 0x9c]
jmp 0x47b3a0
mov eax, 1
push dword [esp + 0x10]
neg eax
xor edx, edx
push 1
push eax
push 0
mov ecx, esi
call fcn.00479df0
add esp, 0x10
jmp 0x47ab45
xor ebx, ebx
nop
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b3c0
cmp dword [esp + 0x1c], 0
je 0x47b413
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
cmp byte [esi + 0x9b], 1
jb 0x47b433
movzx eax, word [esi + 0x9c]
test ax, ax
je 0x47b433
lea edx, [eax - 1]
jmp 0x47b435
xor edx, edx
push dword [esp + 0x10]
mov ecx, esi
push 1
push 0
push 0
call fcn.00479df0
add esp, 0x10
jmp 0x47ab45
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov ecx, 0x2000
nop dword [eax]
mov esi, edi
sub esi, ebx
cmp esi, 0x2000
cmova esi, ecx
cmp dword [eax], 0
jne 0x47b4af
push 0
lea eax, [esp + 0x4c]
push eax
mov eax, dword [esp + 0x1c]
push esi
lea eax, [eax + ebx*2]
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0x90]
call dword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x47b4a6
call dword [0x4eb0cc]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, ecx
jmp 0x47b4aa
mov eax, dword [esp + 0x10]
mov ecx, 0x2000
add ebx, esi
cmp ebx, edi
jb 0x47b460
cmp dword [esp + 0x1c], 0
je 0x47b4d8
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
mov cl, byte [esi + 0x9b]
cmp cl, 1
jb 0x47b4f8
movzx eax, word [esi + 0x9c]
test ax, ax
je 0x47b4f8
dec eax
jmp 0x47b4fa
xor eax, eax
cmp cl, 2
jb 0x47b510
movzx ecx, word [esi + 0x9e]
test cx, cx
je 0x47b510
lea edx, [ecx - 1]
jmp 0x47b512
xor edx, edx
push dword [esp + 0x10]
mov ecx, esi
push 0
push eax
push 0
call fcn.00479df0
add esp, 0x10
jmp 0x47ab45
xor ebx, ebx
nop dword [eax]
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b530
cmp dword [esp + 0x1c], 0
je 0x47b583
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
cmp byte [esi + 0x9b], 0
je 0x47b5b7
movzx edx, word [esi + 0x9c]
cmp edx, 2
ja 0x47ab45
push dword [esp + 0x10]
mov ecx, esi
push 1
call fcn.00479f60
add esp, 8
jmp 0x47ab45
push dword [esp + 0x10]
xor edx, edx
mov ecx, esi
push 1
call fcn.00479f60
add esp, 8
jmp 0x47ab45
xor ebx, ebx
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b5d0
cmp dword [esp + 0x1c], 0
je 0x47b623
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
cmp byte [esi + 0x9b], 0
je 0x47b656
movzx edx, word [esi + 0x9c]
cmp edx, 2
ja 0x47ab45
push dword [esp + 0x10]
mov ecx, esi
push edi
call fcn.00479f60
add esp, 8
jmp 0x47ab45
push dword [esp + 0x10]
xor edx, edx
mov ecx, esi
push edx
call fcn.00479f60
add esp, 8
jmp 0x47ab45
xor ebx, ebx
nop
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b670
cmp dword [esp + 0x1c], 0
je 0x47b6c3
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edi, edi
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.0047a0f0
jmp 0x47ab45
xor ebx, ebx
nop dword [eax + eax]
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b6e0
cmp dword [esp + 0x1c], 0
je 0x47b733
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
push dword [esp + 0x10]
xor edi, edi
xor dl, dl
jmp 0x47ab37
xor ebx, ebx
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b742
cmp dword [esp + 0x1c], 0
je 0x47b795
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
push dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
xor dl, dl
mov ecx, esi
xor edi, edi
call fcn.0047a510
jmp 0x47ab42
cmp cl, 1
jne case.0x47b05b.73
cmp word [esi + 0x9c], 0x19
jne case.0x47b05b.73
xor ebx, ebx
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b7c6
cmp dword [esp + 0x1c], 0
je 0x47b819
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xor edx, edx
push dword [esp + 0x10]
mov ecx, esi
xor edi, edi
call fcn.0047a5d0
jmp 0x47ab42
cmp cl, 1
jne case.0x47b05b.73
cmp word [esi + 0x9c], 0x19
jne case.0x47b05b.73
xor ebx, ebx
nop word [eax + eax]
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, edi
sub esi, ebx
mov eax, 0x2000
cmp esi, 0x2000
cmova esi, eax
mov eax, dword [esp + 0x18]
push esi
lea edx, [eax + ebx*2]
call fcn.00479db0
add ebx, esi
add esp, 8
cmp ebx, edi
jb 0x47b850
cmp dword [esp + 0x1c], 0
je 0x47b8a3
mov ecx, dword [esp + 0x14]
call fcn.004765a0
lea eax, [esp + 0x80]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
mov edx, 1
push dword [esp + 0x10]
mov ecx, esi
xor edi, edi
call fcn.0047a5d0
jmp 0x47ab42
lea eax, [ecx - 0x40]
mov ecx, 0x3e
cmp ecx, eax
sbb bl, bl
and bl, dh
jmp 0x47ab4b
test bl, 8
je 0x47ba0d
test bl, 0x40
je 0x47b909
test bl, bl
js 0x47b901
cmp ecx, 0x22
jne 0x47b8f0
and bl, 0xbf
jmp 0x47ab4b
cmp ecx, 0x5c
jne case.0x47a8fc.27
or bl, 0x80
jmp 0x47ab4b
and bl, 0x7f
jmp 0x47ab4b
cmp ecx, 7
je case.0x47b05b.73
cmp ecx, 0x5c
jne 0x47b928
test bl, 2
jne case.0x47b05b.73
and bl, 0xfd
jmp 0x47ab4b
cmp ecx, 0x1b
jne 0x47b935
or bl, 2
jmp 0x47ab4b
cmp ecx, 0x22
jne 0x47b920
and bl, 0x3d
or bl, 0x40
jmp 0x47ab4b
cmp esi, 0x2000
jbe 0x47b968
call fcn.004a905f
push dword [esp + 0x14]
mov esi, dword [eax]
call dword [0x50bad8]
add esp, 4
call fcn.004a905f
mov dword [eax], esi
call dword [0x4eb0cc]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
jmp 0x47ab7c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
mov edx, 0x2000
add eax, esi
mov dword [esp + 0x2c], eax
cmp eax, edi
jb 0x47ab90
cmp dword [esp + 0x1c], 0
je 0x47b9b6
call fcn.004a905f
push dword [esp + 0x14]
mov esi, dword [eax]
call dword [0x50bad8]
add esp, 4
call fcn.004a905f
mov dword [eax], esi
mov eax, dword [esp + 0x18]
mov cl, byte [esp + 0x23]
push 0
push 1
mov byte [eax + 0x98], cl
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x94], ecx
mov byte [eax + 0x99], bh
mov byte [eax + 0x9a], bl
push dword [0x50f554]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
test eax, eax
je 0x47ba12
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x4084]
pop edi
pop esi
mov eax, dword [eax]
neg eax
pop ebx
sbb eax, eax
xor ecx, esp
call fcn.004879f1
mov esp, ebp
pop ebp
ret
call fcn.004a974b
call fcn.004a974b
nop
dec edi
stosd dword es:[edi], eax
inc edi
add byte [edx - 0x20ffb856], bl
stosd dword es:[edi], eax
inc edi
add byte [ebx], al
test eax, 0xa8cb0047
inc edi
add byte [edx], cl
test eax, 0xac920047
inc edi
add byte [eax], al
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add dword [edx], eax
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add eax, dword [esi]
push es
push es
push es
push es
push es
push es
push es
push es
push es
add al, 6
add eax, dword [ebx]
add eax, dword [esi]
push es
push es
add eax, 1644175119
mov al, 71
add al, dh
mov al, 0x47
add byte [ecx + esi*4 + 0x47], bh
add byte [ecx], cl
mov dl, 0x47
add byte [ebx + 0x2a0047b2], bl
mov bl, 0x47
add byte [ebx + esi*4 - 0x4bb1ffb9], bh
inc edi
add byte [edx], ch
mov ch, 0x47
add dh, cl
mov ch, 0x47
add byte [ecx], dh
mov eax, 0xb7ad0047
inc edi
add byte [esi + esi*4 + 0x47], ch
add cl, bl
mov dh, 0x47
add byte [eax - 0x49], al
inc edi
add byte [ecx - 0x55], cl
inc edi
add byte [eax], al
add dword [edx], eax
add eax, dword [eax + 135202566]
or dword [edi], ecx
invalid