Function at 0x1007805
Capabilities:
Manipulate console buffer
Parse credit card information
Parse pe header
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xe4
push ebx
push esi
mov esi, dword [esp + 0xf4]
xor ebx, ebx
push edi
mov dword [esp + 0x18], ebx
mov dword [esi + 0xa4], 1
mov dword [esi + 0x90], ebx
call fcn.0100607c
call fcn.010072ff
cmp dword [esp + 0xfc], ebx
mov eax, dword [esp + 0x100]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
jbe 0x1009122
push ebp
mov eax, dword [0x1029a64]
mov ecx, eax
and ecx, 1
push 2
mov edi, 0x1023c98
mov edx, 0x100e730
pop ebp
jne 0x1007914
test al, 2
jne 0x1007914
mov eax, dword [esp + 0x10]
cmp byte [eax], 0x81
jb 0x1007914
mov edi, dword [esp + 0xf8]
call fcn.0100650a
mov ax, word [esi + 0x14]
sub ax, word [0x100f724]
mov word [esp + 0x20], ax
mov ax, word [esi + 0x10]
sub ax, word [0x100f720]
inc dword [esi + 0x14]
mov word [esp + 0x22], ax
push dword [esp + 0x20]
push dword [edi + 0x7b8]
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push ebx
lea eax, [esp + 0x28]
push eax
xor ebp, ebp
inc ebp
push ebp
push dword [esp + 0x1c]
push dword [edi + 0x7b8]
call dword [sym.imp.KERNEL32.dll_WriteConsoleA]
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x24]
xor eax, eax
mov ax, word [edi + 0x7c8]
push ebp
push eax
push dword [edi + 0x7b8]
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
cmp dword [0x100f74c], ebx
je case.default.0x1007920
mov dword [0x1024cac], ebp
jmp case.default.0x1007920
mov eax, dword [esi + 0x78]
cmp eax, 7
ja case.default.0x1007920
jmp dword [eax*4 + 0x10091ea]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
cmp eax, 0x11
jg 0x1007bae
je case.default.0x1007920
cmp eax, 9
jg 0x1007a96
je 0x1007985
sub eax, ebx
je case.default.0x1007920
sub eax, 5
je case.default.0x1007920
sub eax, ebp
je 0x1007978
dec eax
jne 0x1007c93
mov eax, dword [esi + 0x14]
cmp eax, ebx
jbe 0x1007b78
dec eax
mov dword [esi + 0x14], eax
jmp 0x1007b78
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_MessageBeep]
jmp case.default.0x1007920
mov dx, word [0x1024ca4]
cmp dx, bx
mov ecx, dword [esi + 0x14]
je 0x10079d0
movzx edx, dx
xor eax, eax
cmp edx, ebx
jle 0x10079bf
mov edi, dword [eax*4 + 0x102a4a0]
cmp edi, ecx
jbe 0x10079ad
cmp edi, 0xffffffff
jne 0x10079bf
inc eax
cmp eax, edx
jl 0x100799d
jmp 0x10079bf
cmp dword [eax*4 + 0x102a4a0], 0xffffffff
jne 0x10079c3
inc eax
cmp eax, edx
jl 0x10079b4
cmp eax, edx
jge 0x10079d0
mov eax, dword [eax*4 + 0x102a4a0]
jmp 0x10079da
lea eax, [ecx + 8]
mov edx, eax
and edx, 7
sub eax, edx
mov dword [esi + 0x14], eax
test byte [0x100f740], 8
je 0x1007a57
cmp dword [esi + 0x1b4], ebx
jne 0x1007a09
mov dword [esi + 0x1b8], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x1bc], eax
mov eax, dword [esi + 0xa0]
mov dword [esi + 0x1c0], eax
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0x1b4]
sub edx, ecx
mov ecx, edx
mov ebp, ecx
shr ecx, 2
lea edi, [esi + edi + 0xb4]
mov eax, 0x20202020
rep stosd dword es:[edi], eax
mov ecx, ebp
and ecx, 3
rep stosb byte es:[edi], al
add dword [esi + 0x1b4], edx
cmp dword [esi + 0x1b4], 0x100
jb 0x1007a4e
mov edi, dword [esp + 0xf8]
call fcn.0100650a
test byte [0x100f740], 8
jne 0x1007a63
mov edi, dword [esp + 0xf8]
call fcn.0100650a
mov eax, dword [esi + 0x14]
cmp eax, dword [0x100f714]
jb case.default.0x1007920
test byte [0x100f740], 8
je 0x1007a87
mov edi, dword [esp + 0xf8]
call fcn.0100650a
mov dword [esi + 0x14], ebx
push dword [esp + 0xf8]
jmp 0x1007ba4
cmp eax, 0xa
jl 0x1007c93
cmp eax, 0xc
jle 0x10085dc
cmp eax, 0xd
je 0x1007b6f
cmp eax, 0xe
je 0x1007b08
cmp eax, 0xf
jne 0x1007c93
mov dword [esi + 0x88], ebx
mov al, byte [0x1029a64]
test al, 1
je 0x1007af0
test al, 2
je 0x1007af0
test byte [esi + 0x95], 0x10
je 0x1007ae6
push dword [esi + 0x210]
jmp 0x1008118
push 0x100e230
jmp 0x1008118
movsx eax, byte [esi + 0x84]
jmp 0x1007b44
mov dword [esi + 0x80], 0x100e630
jmp case.default.0x1007920
mov dword [esi + 0x88], 1
mov al, byte [0x1029a64]
test al, 1
je 0x1007b3d
test al, 2
je 0x1007b3d
test byte [esi + 0x95], 0x10
je 0x1007b33
push dword [esi + 0x214]
jmp 0x1008118
push 0x100e2b0
jmp 0x1008118
movsx eax, byte [esi + 0x85]
sub eax, 0x30
je 0x1007b64
dec eax
je 0x10081a4
dec eax
je 0x1007b64
sub eax, 0xf
je 0x1007af9
dec eax
jne case.default.0x1007920
jmp 0x10081a4
mov dword [esi + 0x80], edx
jmp case.default.0x1007920
mov dword [esi + 0x14], ebx
mov dword [esi + 0xac], ebx
mov edi, dword [esp + 0xf8]
call fcn.0100650a
jmp case.default.0x1007920
lea eax, [esi + 0xb0]
cmp dword [eax], ebx
jne 0x10085f0
mov edi, dword [esp + 0xf8]
call fcn.0100650a
push edi
call fcn.01006292
jmp case.default.0x1007920
cmp eax, 0x7e
jg 0x1007c21
je 0x1007c19
sub eax, 0x13
je case.default.0x1007920
sub eax, 5
je case.default.0x1007920
sub eax, ebp
je 0x1007bde
dec eax
jne 0x1007c93
mov dword [esi + 0x78], 1
jmp case.default.0x1007920
cmp ecx, ebx
je case.default.0x1007920
test byte [0x1029a64], 2
je case.default.0x1007920
test byte [esi + 0x208], 0x40
je case.default.0x1007920
test byte [0x100f764], 1
je case.default.0x1007920
mov dword [esi + 0x78], 7
jmp case.default.0x1007920
inc dword [esi + 0x90]
jmp 0x1007c93
sub eax, 0x7f
je case.default.0x1007920
sub eax, 0xf
je 0x1007c67
dec eax
jne 0x1007c93
cmp ecx, ebx
je case.default.0x1007920
test byte [0x1029a64], 2
je case.default.0x1007920
test byte [esi + 0x95], 0x10
je 0x1007c93
test byte [esi + 0x20c], 0x40
jne 0x1007c93
test byte [esi + 0x208], 0x35
je 0x1007c93
jmp 0x1008412
cmp ecx, ebx
je 0x1007c93
test byte [0x1029a64], 2
je 0x1007c93
test byte [esi + 0x95], 0x10
je 0x1007c93
test byte [esi + 0x20c], 0x40
jne 0x1007c93
test byte [esi + 0x208], 0x35
jne 0x100847a
mov eax, dword [esi + 0x14]
cmp eax, dword [0x100f714]
jb 0x1007ccb
mov edi, dword [esp + 0xf8]
mov dword [esi + 0x14], ebx
call fcn.0100650a
push edi
call fcn.01006292
xor eax, eax
inc eax
test byte [esi + 0x94], 4
mov dword [esi + 0xb0], eax
jne 0x1007ccb
mov dword [esi + 0xac], eax
cmp dword [esi + 0xac], ebx
jne case.default.0x1007920
cmp dword [esi + 0x1b4], ebx
mov dword [esi + 0xb0], ebx
jne 0x1007d03
mov eax, dword [esi + 0x14]
mov dword [esi + 0x1b8], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x1bc], eax
mov eax, dword [esi + 0xa0]
mov dword [esi + 0x1c0], eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
mov ecx, dword [esi + 0x80]
movzx eax, byte [ecx + eax]
push eax
call fcn.0100755c
test eax, eax
je 0x1007d2a
mov edi, dword [esp + 0xf8]
call fcn.0100650a
mov al, byte [0x1029a64]
test al, 1
je 0x1007d3b
test al, 2
jne case.default.0x1007920
inc dword [esi + 0x14]
jmp case.default.0x1007920
cmp dword [esi + 0x1b4], ebx
je 0x1007d5c
mov edi, dword [esp + 0xf8]
call fcn.0100650a
mov edi, 0x1023c98
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
cmp al, 0x5b
je 0x1007d6d
cmp al, 0x23
je 0x1007d6d
mov dword [esi + 0x78], ebx
movzx eax, byte [ecx]
cmp eax, 0x63
jg 0x10084ba
je 0x10084a2
cmp eax, 0x43
jg 0x100808d
je 0x1008072
cmp eax, 0x37
jg 0x1007f20
je 0x1007e82
sub eax, 0x23
je 0x1007e76
dec eax
je 0x1007e36
dec eax
je case.default.0x1007920
sub eax, 3
je 0x1007dea
dec eax
je 0x1007dd1
sub eax, 8
je case.default.0x1007920
dec eax
je case.default.0x1007920
jmp 0x10084f3
inc dword [esp + 0x14]
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov al, byte [eax]
mov byte [esi + 0x85], al
jmp case.default.0x1007920
mov al, byte [0x1029a64]
test al, 1
je 0x1007e1d
test al, 2
je 0x1007e1d
test byte [esi + 0x95], 0x10
je case.default.0x1007920
test byte [esi + 0x208], 0x21
je case.default.0x1007920
mov dword [esi + 0x78], 5
jmp case.default.0x1007920
inc dword [esp + 0x14]
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov al, byte [eax]
mov byte [esi + 0x84], al
jmp case.default.0x1007920
test byte [0x1029a64], 1
je case.default.0x1007920
test byte [0x1029a64], 2
je case.default.0x1007920
test byte [esi + 0x95], 0x10
je case.default.0x1007920
test byte [esi + 0x208], 0x21
je case.default.0x1007920
mov dword [esi + 0x78], 6
jmp case.default.0x1007920
mov dword [esi + 0x78], 3
jmp case.default.0x1007920
push 0x102a640
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
mov eax, dword [esi + 0x14]
mov dword [esi + 0x1fc], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x200], eax
mov eax, dword [esi + 0x98]
mov dword [esi + 0x204], eax
mov eax, dword [esi + 0x80]
mov dword [esi + 0x1f8], eax
mov eax, dword [esi + 0x88]
mov dword [esi + 0x1f4], eax
mov al, byte [esi + 0x84]
mov byte [esi + 0x1f0], al
mov al, byte [esi + 0x85]
mov byte [esi + 0x1f1], al
mov eax, dword [esi + 0x68]
xor ecx, ecx
cmp eax, ebx
mov dword [esi + 0x9c], 1
mov dword [esi + 0x1ec], eax
jl case.default.0x1007920
lea eax, [esi + 0x1c4]
mov edx, dword [eax - 0x184]
mov dword [eax], edx
inc ecx
movzx edx, cx
add eax, 4
cmp edx, dword [esi + 0x1ec]
jle 0x1007f04
jmp case.default.0x1007920
sub eax, 0x38
je 0x1007f94
sub eax, 4
je 0x1007f85
dec eax
je 0x1007f79
dec eax
je 0x1007f6e
sub eax, 3
je 0x1007f55
dec eax
jne 0x10084f3
cmp dword [esi], ebp
jne case.default.0x1007920
mov dword [esi + 0x18], 1
call fcn.010066a3
jmp case.default.0x1007920
cmp dword [esi], ebp
jne case.default.0x1007920
mov dword [esi + 0x18], 1
call fcn.01006659
jmp case.default.0x1007920
or dword [esi + 0x94], ebp
jmp case.default.0x1007920
and dword [esi + 0x94], 0xfffffffd
jmp case.default.0x1007920
cmp dword [esi], ebp
jne case.default.0x1007920
mov dword [esi], ebx
jmp case.default.0x1007920
mov eax, dword [esi + 0x1f8]
cmp eax, ebx
je 0x1007fc8
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0x1f4]
mov dword [esi + 0x88], eax
mov al, byte [esi + 0x1f0]
mov byte [esi + 0x84], al
mov al, byte [esi + 0x1f1]
mov byte [esi + 0x85], al
mov eax, dword [esi + 0x1ec]
xor edi, edi
cmp eax, dword [esi + 0x68]
je 0x1007fd6
inc edi
xor edx, edx
cmp eax, ebx
jl 0x1007fff
lea ecx, [esi + 0x40]
cmp edi, ebx
jne 0x1008003
mov ebp, dword [ecx + 0x184]
cmp ebp, dword [ecx]
je 0x1007ff0
xor edi, edi
inc edi
inc edx
movzx ebp, dx
add ecx, 4
cmp ebp, dword [esi + 0x1ec]
jle 0x1007fdf
cmp edi, ebx
je 0x1008018
lea ecx, [esi + 0x1c4]
push ecx
push eax
push esi
push dword [esp + 0x104]
call fcn.01006d7f
push 0x102a64a
xor edi, edi
inc edi
push edi
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_SetConsoleWindowInfo]
cmp dword [esi + 0x9c], ebx
jne 0x100804f
cmp dword [esi + 0x98], ebx
mov dword [esi + 0x14], edi
je 0x1008045
mov eax, dword [esi + 0x70]
jmp 0x1008047
xor eax, eax
mov dword [esi + 0x10], eax
jmp case.default.0x1007920
mov eax, dword [esi + 0x1fc]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x200]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x204]
mov dword [esi + 0x98], eax
jmp case.default.0x1007920
cmp dword [esi], ebp
jne case.default.0x1007920
mov dword [esi + 0x18], 1
mov eax, esi
call fcn.010066ef
jmp case.default.0x1007920
cmp eax, 0x4b
jg 0x1008235
je 0x10081f6
sub eax, 0x44
je 0x10081e2
dec eax
je 0x1007a87
dec eax
je 0x10081b3
dec eax
je 0x1008184
dec eax
je 0x10080ed
dec eax
je 0x10080d4
dec eax
jne 0x10084f3
cmp dword [esi], ebp
jne case.default.0x1007920
jmp 0x1008506
cmp dword [esi], ebp
jne case.default.0x1007920
push dword [esp + 0xf8]
call fcn.01006157
jmp case.default.0x1007920
mov al, byte [0x1029a64]
test al, 1
je 0x1008124
test al, 2
je 0x1008124
test byte [esi + 0x95], 0x10
je 0x1008124
test byte [esi + 0x208], 8
je 0x1008124
and dword [esi + 0x20c], 0xffffffbf
push 0x100e030
push ebx
push esi
call fcn.01006f46
jmp case.default.0x1007920
cmp dword [esi], ebp
jne 0x1008159
lea eax, [esp + 0x64]
push eax
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
jne 0x1008147
mov word [esp + 0x70], bx
mov word [esp + 0x6e], bx
movsx eax, word [esp + 0x70]
mov dword [esi + 0x10], eax
movsx eax, word [esp + 0x6e]
jmp 0x1008603
cmp word [0x1024ca4], 0x64
jae case.default.0x1007920
movzx eax, word [0x1024ca4]
mov ecx, dword [esi + 0x14]
inc word [0x1024ca4]
mov dword [eax*4 + 0x102a4a0], ecx
jmp case.default.0x1007920
cmp dword [esi], ebp
jne case.default.0x1007920
and byte [esi + 0x95], 0xfb
mov al, byte [0x1029a64]
test al, 1
je 0x10081a4
test al, 2
jne 0x1007ae6
mov dword [esi + 0x80], 0x100e430
jmp case.default.0x1007920
cmp dword [esi], ebp
jne case.default.0x1007920
or byte [esi + 0x95], 4
mov al, byte [0x1029a64]
test al, 1
je 0x10081d3
test al, 2
jne 0x1007b33
mov dword [esi + 0x80], 0x100e530
jmp case.default.0x1007920
cmp dword [esi], ebp
jne 0x1007a8a
mov dword [esi + 0x18], 1
jmp 0x1008639
mov al, byte [0x1029a64]
test al, 1
je 0x1008226
test al, 2
je 0x1008226
test byte [esi + 0x95], 0x10
je 0x1008226
test byte [esi + 0x208], 8
je 0x1008226
or dword [esi + 0x20c], 0x40
push 0x100e0b0
jmp 0x1008118
cmp dword [esi], ebp
jne case.default.0x1007920
push 0
jmp 0x10086fb
sub eax, 0x4d
je 0x10080dc
dec eax
je 0x1008439
dec eax
je 0x10083d1
sub eax, 0xa
je 0x1008314
dec eax
je 0x100827a
dec eax
jne 0x10084f3
or dword [esi + 0x18], 0xffffffff
or dword [esi + 0x1c], 0xffffffff
or dword [esi + 0x7c], 0xffffffff
mov dword [esi + 0x78], ebp
mov dword [esi + 0x6c], ebx
mov dword [esp + 0x1c], ebx
jmp case.default.0x1007920
cmp dword [esi], ebp
je 0x10082f7
mov al, byte [0x1029a64]
test al, 1
je 0x10082c9
test al, 2
je 0x10082c9
test byte [esi + 0x95], 0x10
je 0x10082c9
mov byte [0x1023c99], 0x5b
mov byte [0x1023c9a], 0x3f
mov byte [0x1023c9b], 0x31
mov byte [0x1023c9c], 0x38
mov byte [0x1023c9d], 0x3b
mov byte [0x1023c9e], 0x32
mov byte [0x1023c9f], 0x63
push 8
jmp 0x1008307
mov byte [0x1023c99], 0x5b
mov byte [0x1023c9a], 0x3f
mov byte [0x1023c9b], 0x31
mov byte [0x1023c9c], 0x3b
mov byte [0x1023c9d], 0x30
mov byte [0x1023c9e], 0x63
push 7
jmp 0x1008307
mov byte [0x1023c99], 0x2f
mov byte [0x1023c9a], 0x5a
push 3
mov byte [0x1023c98], 0x1b
pop eax
jmp 0x1009030
cmp dword [esi], ebp
jne case.default.0x1007920
mov eax, dword [esp + 0x14]
add eax, 3
cmp eax, dword [esp + 0x100]
ja 0x10083ba
mov eax, dword [esp + 0x10]
mov al, byte [eax + 1]
cmp al, 0x1f
jbe 0x1008343
movzx edi, al
sub edi, 0x20
jmp 0x1008345
xor edi, edi
mov eax, dword [esi + 0x10]
cmp edi, eax
je 0x1008352
push eax
call fcn.01005dd2
mov dword [esi + 0x10], edi
mov edi, dword [esp + 0x10]
add edi, 2
mov al, byte [edi]
cmp al, 0x1f
jbe 0x100836a
movzx eax, al
sub eax, 0x20
jmp 0x100836c
xor eax, eax
mov dword [esi + 0x14], eax
lea eax, [esp + 0x94]
push eax
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
jne 0x1008397
mov word [esp + 0xa0], bx
mov word [esp + 0x9e], bx
movsx eax, word [esp + 0xa0]
add dword [esi + 0x10], eax
movsx eax, word [esp + 0x9e]
add dword [esi + 0x14], eax
add dword [esp + 0x14], ebp
mov dword [esp + 0x10], edi
jmp case.default.0x1007920
or dword [esi + 0x18], 0xffffffff
or dword [esi + 0x1c], 0xffffffff
mov dword [esi + 0x78], 4
mov dword [esi + 0x6c], ebx
jmp case.default.0x1007920
test byte [0x1029a64], 1
je case.default.0x1007920
test byte [0x1029a64], 2
je case.default.0x1007920
test byte [esi + 0x95], 0x10
je case.default.0x1007920
test byte [esi + 0x20c], 0x40
jne case.default.0x1007920
test byte [esi + 0x208], 0x35
je case.default.0x1007920
lea edx, [esi + 0x21c]
push dword [edx]
push ebx
push esi
call fcn.01006f79
push dword [edx]
push 0x80
push esi
call fcn.01006f79
or dword [esi + 0x20c], ebp
jmp case.default.0x1007920
test byte [0x1029a64], 1
je case.default.0x1007920
test byte [0x1029a64], 2
je case.default.0x1007920
test byte [esi + 0x95], 0x10
je case.default.0x1007920
test byte [esi + 0x20c], 0x40
jne case.default.0x1007920
test byte [esi + 0x208], 0x35
je case.default.0x1007920
lea edx, [esi + 0x218]
push dword [edx]
push ebx
push esi
call fcn.01006f79
push dword [edx]
push 0x80
push esi
call fcn.01006f79
or dword [esi + 0x20c], 1
jmp case.default.0x1007920
mov edi, dword [esp + 0xf8]
call fcn.0100650a
push esi
push edi
call fcn.01007761
jmp case.default.0x1007920
cmp eax, 0x7e
jne 0x10084f3
test byte [0x1029a64], 1
je case.default.0x1007920
test byte [0x1029a64], 2
je case.default.0x1007920
test byte [esi + 0x95], 0x10
je 0x10084f3
push dword [esi + 0x214]
push 0x80
push esi
call fcn.01006f46
mov eax, dword [esp + 0x10]
cmp byte [eax], 0xc
jne case.default.0x1007920
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
push ebx
jmp 0x1008713
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
cmp al, 0x30
jb 0x100851a
cmp al, 0x39
jbe 0x1008544
cmp al, 0x3f
je 0x1008544
cmp al, 0x3b
je 0x1008544
cmp dword [esi + 0x7c], 0xffffffff
jne 0x100852b
mov dword [esi + 0x7c], ebx
mov eax, dword [esi + 0x6c]
mov edx, dword [esi + 0x7c]
mov dword [esi + eax*4 + 0x18], edx
inc dword [esi + 0x6c]
mov eax, dword [esi + 0x6c]
cmp eax, 0xa
jae 0x1008544
mov dword [esi + eax*4 + 0x18], ebx
movzx eax, byte [ecx]
cmp eax, 0x58
jg 0x1008868
je case.default.0x1007920
cmp eax, 0x45
jg 0x10086cb
je case.default.0x1007920
cmp eax, 0x3f
jg 0x1008618
je 0x100860b
cmp eax, 8
je 0x10085f7
cmp eax, 0xa
je 0x10085dc
cmp eax, 0x2f
jle 0x1009105
cmp eax, 0x39
jle 0x10085c0
cmp eax, 0x3b
je 0x1008599
cmp eax, 0x3d
jmp 0x10088a0
mov eax, dword [esi + 0x6c]
cmp eax, 9
jae case.default.0x1007920
mov ecx, dword [esi + 0x7c]
mov dword [esi + eax*4 + 0x18], ecx
inc dword [esi + 0x6c]
mov eax, dword [esi + 0x6c]
or dword [esi + eax*4 + 0x18], 0xffffffff
or dword [esi + 0x7c], 0xffffffff
jmp case.default.0x1007920
mov ecx, dword [esi + 0x7c]
cmp ecx, 0xffffffff
jne 0x10085cd
add eax, 0xffffffd0
jmp 0x10085d4
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2 - 0x30]
mov dword [esi + 0x7c], eax
jmp case.default.0x1007920
lea eax, [esi + 0xac]
cmp dword [eax], ebx
je 0x1007b89
mov dword [esi + 0xb0], ebx
mov dword [eax], ebx
jmp case.default.0x1007920
mov eax, dword [esi + 0x14]
cmp eax, ebx
jbe case.default.0x1007920
dec eax
mov dword [esi + 0x14], eax
jmp case.default.0x1007920
mov dword [esp + 0x1c], 1
jmp case.default.0x1007920
sub eax, 0x40
je 0x1008645
dec eax
je 0x1007f64
dec eax
je 0x1007f4b
dec eax
je 0x1008081
dec eax
jne 0x1009105
mov eax, esi
call fcn.01006718
jmp case.default.0x1007920
cmp dword [esi + 0x18], ebx
jne 0x1008651
mov dword [esi + 0x18], 1
mov edi, dword [0x100f714]
mov edx, dword [esi + 0x14]
mov eax, edi
sub eax, edx
cmp dword [esi + 0x18], eax
jbe 0x100866c
mov dword [esi + 0x18], eax
mov edi, dword [0x100f714]
mov ecx, dword [esi + 0x18]
add ecx, edx
mov eax, edi
sub eax, ecx
je 0x100881a
mov ax, word [esi + 0x10]
mov dx, word [esi + 0x14]
mov word [esp + 0x34], cx
mov word [esp + 0x36], ax
mov word [esp + 0x42], ax
mov word [esp + 0x3e], ax
mov eax, dword [esp + 0xf8]
mov cx, word [eax + 0x7c8]
mov word [eax + 0x7d8], cx
lea ecx, [eax + 0x7d6]
push ecx
push dword [esp + 0x38]
mov word [esp + 0x44], dx
mov word [esp + 0x48], di
push ebx
lea ecx, [esp + 0x48]
jmp 0x100880d
cmp eax, 0x4c
jg 0x100875b
je 0x1008725
sub eax, 0x46
je case.default.0x1007920
dec eax
je case.default.0x1007920
dec eax
je 0x1008b7f
sub eax, ebp
je 0x1008710
dec eax
jne 0x1009105
push dword [esi + 0x18]
mov ebx, dword [esp + 0xfc]
mov edi, esi
call fcn.01006917
xor ebx, ebx
jmp case.default.0x1007920
push dword [esi + 0x18]
push esi
push dword [esp + 0x100]
call fcn.01006746
jmp case.default.0x1007920
cmp dword [esi + 0x18], ebx
jne 0x1008731
mov dword [esi + 0x18], 1
xor edi, edi
cmp dword [esi + 0x18], ebx
jbe 0x1009105
mov ecx, dword [esi + 0x10]
mov eax, dword [esp + 0xf8]
mov edx, esi
call fcn.010060f4
inc edi
movzx eax, di
cmp eax, dword [esi + 0x18]
jb 0x100873c
jmp 0x1009105
sub eax, 0x4d
je 0x1008833
sub eax, 3
je 0x1008777
sub eax, 3
je case.default.0x1007920
jmp 0x100889f
cmp dword [esi + 0x18], ebx
jne 0x1008783
mov dword [esi + 0x18], 1
mov ecx, dword [esi + 0x14]
mov eax, dword [0x100f714]
sub eax, ecx
cmp dword [esi + 0x18], eax
jbe 0x1008795
mov dword [esi + 0x18], eax
mov eax, dword [0x100f714]
sub eax, ecx
dec eax
je 0x100881a
mov cx, word [esi + 0x14]
mov ax, word [esi + 0x10]
mov word [esp + 0x2c], cx
mov cx, word [0x100f714]
mov word [esp + 0x30], cx
mov word [esp + 0x2e], ax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x44], ecx
mov word [esp + 0x32], ax
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x48], ecx
mov cx, word [esi + 0x14]
sub cx, word [esi + 0x18]
mov word [esp + 0x3a], ax
mov eax, dword [esp + 0xf8]
mov word [esp + 0x38], cx
mov cx, word [eax + 0x7c8]
mov word [eax + 0x7d8], cx
lea ecx, [eax + 0x7d6]
push ecx
push dword [esp + 0x3c]
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0x38]
push ecx
push dword [eax + 0x7b8]
call dword [sym.imp.KERNEL32.dll_ScrollConsoleScreenBufferW]
cmp dword [0x100f74c], ebx
je 0x1009105
push dword [esi + 0x10]
call fcn.01005dd2
jmp 0x1009105
cmp dword [esi + 0x18], ebx
jne 0x100883f
mov dword [esi + 0x18], 1
xor edi, edi
cmp dword [esi + 0x18], ebx
jbe 0x1009105
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0xf8]
push esi
call fcn.010061b3
inc edi
movzx eax, di
cmp eax, dword [esi + 0x18]
jb 0x100884a
jmp 0x1009105
cmp eax, 0x6c
jg 0x1008e0f
je 0x1008c3d
cmp eax, 0x65
jg 0x10088e3
je 0x1007f4b
sub eax, 0x5a
je case.default.0x1007920
sub eax, 6
je case.default.0x1007920
dec eax
je 0x1008081
sub eax, ebp
je 0x10088ab
dec eax
je case.default.0x1007920
jmp 0x1009105
mov byte [0x1023c98], 0x1b
mov byte [0x1023c99], 0x5b
mov byte [0x1023c9a], 0x3f
mov byte [0x1023c9b], 0x31
mov byte [0x1023c9c], 0x3b
mov byte [0x1023c9d], 0x30
mov byte [0x1023c9e], 0x63
push 7
jmp 0x1008f6a
sub eax, 0x66
je 0x1008b7f
dec eax
je 0x1008b12
dec eax
je 0x10088fc
dec eax
jmp 0x1009105
xor ebx, ebx
cmp dword [esi + 0x6c], ebx
jbe 0x1008e06
lea edi, [esi + 0x18]
mov eax, dword [edi]
xor ecx, ecx
inc ecx
cmp dword [esp + 0x1c], ecx
jne 0x1008ada
dec eax
je 0x1008a8a
dec eax
je 0x1008a55
dec eax
je 0x1008981
sub eax, ebp
je 0x1008959
dec eax
je 0x1008944
dec eax
jne 0x1008b00
or dword [esi + 0x94], 4
jmp 0x1008b00
mov eax, dword [esi + 0x70]
and dword [esi + 0x14], 0
mov dword [esi + 0x98], ecx
mov dword [esi + 0x10], eax
jmp 0x1008b00
lea ecx, [esi + 0x94]
mov eax, dword [ecx]
test al, al
js 0x1008b00
push dword [esp + 0xf8]
or eax, 0x80
mov dword [ecx], eax
call fcn.01006390
jmp 0x1008b00
or dword [esi + 0x94], 0x40
push 0x102a640
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
mov ax, word [0x102a642]
push dword [0x102a458]
mov word [0x102a64e], 0x83
mov word [esp + 0x1c], 0x84
mov word [esp + 0x1e], ax
call dword [sym.imp.KERNEL32.dll_GetLargestConsoleWindowSize]
cmp ax, 0x83
jge 0x10089d3
sub eax, dword [0x102a64a]
dec eax
mov word [0x102a64e], ax
cmp word [0x102a640], 0x84
jg 0x1008a03
push dword [esp + 0x18]
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_SetConsoleScreenBufferSize]
push 0x102a64a
push 1
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_SetConsoleWindowInfo]
jmp 0x1008a26
push 0x102a64a
push 1
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_SetConsoleWindowInfo]
push dword [esp + 0x18]
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_SetConsoleScreenBufferSize]
push ebp
push esi
push dword [esp + 0x100]
mov dword [0x100f714], 0x84
mov word [0x102a460], 0x84
mov word [0x102a640], 0x84
call fcn.01006746
jmp 0x1008b00
and dword [esi], 0
and byte [esi + 0x95], 0xfb
mov al, byte [0x1029a64]
test al, 1
je 0x1008a7e
test al, 2
je 0x1008a7e
push 0x100e230
push 0
push esi
call fcn.01006f46
jmp 0x1008b00
mov dword [esi + 0x80], 0x100e430
jmp 0x1008b00
lea eax, [esp + 0xac]
push eax
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
jne 0x1008ab0
and word [0x102a64c], ax
and word [0x102a650], ax
test byte [0x1029a64], 1
movsx ecx, word [esp + 0xb8]
movsx edx, word [esp + 0xbc]
mov eax, esi
jne 0x1008acc
inc edx
call fcn.0100699c
or dword [esi + 0x94], 1
jmp 0x1008b00
sub eax, ebp
je 0x1008af9
sub eax, ebp
je 0x1008af0
sub eax, 0x10
jne 0x1008b00
or byte [esi + 0x95], 1
jmp 0x1008b00
or byte [esi + 0x95], 2
jmp 0x1008b00
or byte [esi + 0x95], 8
inc ebx
add edi, 4
cmp ebx, dword [esi + 0x6c]
jb 0x100890a
jmp 0x1008e06
mov eax, dword [esi + 0x18]
cmp eax, 3
jne 0x1008b26
mov word [0x1024ca4], bx
jmp 0x1009105
cmp eax, ebx
jne 0x1009105
mov cx, word [0x1024ca4]
cmp cx, bx
je 0x1009105
movzx edi, cx
xor eax, eax
cmp edi, ebx
jle 0x1009105
mov edx, dword [esi + 0x14]
mov ecx, dword [eax*4 + 0x102a4a0]
cmp ecx, edx
jb 0x1008b5e
cmp ecx, 0xffffffff
jne 0x1008b68
inc eax
cmp eax, edi
jl 0x1008b4e
jmp 0x1009105
lea eax, [eax*4 + 0x102a4a0]
cmp dword [eax], edx
jne 0x1009105
or dword [eax], 0xffffffff
jmp 0x1009105
cmp dword [esi + 0x18], ebx
jne 0x1008b8b
mov dword [esi + 0x18], 1
cmp dword [esi + 0x1c], ebx
jne 0x1008b97
mov dword [esi + 0x1c], 1
lea eax, [esp + 0x4c]
push eax
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
jne 0x1008bb6
mov word [esp + 0x58], bx
mov word [esp + 0x56], bx
movsx eax, word [esp + 0x58]
mov ecx, dword [esi + 0x18]
lea edi, [eax + ecx - 1]
movsx eax, word [esp + 0x56]
mov ecx, dword [esi + 0x1c]
lea eax, [eax + ecx - 1]
mov dword [esi + 0x14], eax
mov ax, word [esp + 0x5a]
cmp word [esi + 0x14], ax
jl 0x1008be2
movsx eax, ax
mov dword [esi + 0x14], eax
cmp di, word [esp + 0x5c]
jl 0x1008bee
movsx edi, word [esp + 0x5c]
cmp dword [0x100f74c], ebx
je 0x1008c03
mov eax, dword [esi + 0x10]
cmp edi, eax
je 0x1008c03
push eax
call fcn.01005dd2
mov ecx, dword [esi + 0x98]
cmp ecx, 1
mov dword [esi + 0x10], edi
jne 0x1008c2c
mov eax, dword [esi + 0x70]
cmp edi, eax
jae 0x1008c1b
mov dword [esi + 0x10], eax
cmp ecx, 1
jne 0x1008c2c
mov eax, dword [esi + 0x74]
cmp dword [esi + 0x10], eax
jb 0x1008c2c
dec eax
mov dword [esi + 0x10], eax
mov dword [esi + 0xac], ebx
mov dword [esi + 0xb0], ebx
jmp 0x1009105
xor ebx, ebx
cmp dword [esi + 0x6c], ebx
jbe 0x1008e06
lea edi, [esi + 0x18]
cmp dword [esp + 0x1c], 1
mov eax, dword [edi]
jne 0x1008dd0
dec eax
je 0x1008d91
dec eax
je 0x1008d86
dec eax
je 0x1008cbe
sub eax, ebp
je 0x1008c96
dec eax
je 0x1008c83
dec eax
jne 0x1008df9
and dword [esi + 0x94], 0xfffffffb
jmp 0x1008df9
xor eax, eax
mov dword [esi + 0x98], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
jmp 0x1008df9
lea ecx, [esi + 0x94]
mov eax, dword [ecx]
test al, al
jns 0x1008df9
push dword [esp + 0xf8]
and eax, 0xffffff7f
mov dword [ecx], eax
call fcn.0100643d
jmp 0x1008df9
and dword [esi + 0x94], 0xffffffbf
push 0x102a640
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
push dword [0x102a458]
mov word [0x102a64e], 0x4f
call dword [sym.imp.KERNEL32.dll_GetLargestConsoleWindowSize]
cmp ax, 0x4f
jge 0x1008cfe
sub eax, dword [0x102a64a]
dec eax
mov word [0x102a64e], ax
cmp word [0x102a640], 0x50
mov ax, word [0x102a642]
mov word [esp + 0x18], 0x50
mov word [esp + 0x1a], ax
jg 0x1008d3f
push dword [esp + 0x18]
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_SetConsoleScreenBufferSize]
push 0x102a64a
push 1
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_SetConsoleWindowInfo]
jmp 0x1008d62
push 0x102a64a
push 1
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_SetConsoleWindowInfo]
push dword [esp + 0x18]
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_SetConsoleScreenBufferSize]
push 0x50
pop eax
push ebp
push esi
push dword [esp + 0x100]
mov dword [0x100f714], eax
mov word [0x102a460], ax
mov word [0x102a640], ax
call fcn.01006746
jmp 0x1008df9
and byte [esi + 0x95], 0xfb
mov dword [esi], ebp
jmp 0x1008df9
lea eax, [esp + 0xc4]
push eax
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
jne 0x1008db0
and word [0x102a642], ax
movsx eax, word [esp + 0xc6]
and dword [esi + 0x70], 0
cmp eax, dword [0x100f710]
ja 0x1008dc7
mov dword [esi + 0x74], eax
and dword [esi + 0x94], 0xfffffffe
jmp 0x1008df9
cmp eax, ebp
je 0x1008df2
jbe 0x1008df9
cmp eax, 4
jbe 0x1008de9
cmp eax, 0x14
jne 0x1008df9
and byte [esi + 0x95], 0xfe
jmp 0x1008df9
and byte [esi + 0x95], 0xfd
jmp 0x1008df9
and byte [esi + 0x95], 0xf7
inc ebx
add edi, 4
cmp ebx, dword [esi + 0x6c]
jb 0x1008c4b
and dword [esi + 0x78], 0
jmp 0x1008709
cmp eax, 0x73
jg 0x1008f93
je 0x1008f7c
sub eax, 0x6d
je 0x1008fb1
dec eax
je 0x1008ed1
sub eax, ebp
je case.default.0x1007920
dec eax
je 0x1009105
dec eax
jne 0x1009105
cmp dword [esi + 0x6c], ebp
jb 0x1008e4e
cmp dword [esi + 0x1c], ebx
jne 0x1008e56
mov eax, dword [0x100f710]
mov dword [esi + 0x1c], eax
cmp dword [esi + 0x18], ebx
jne 0x1008e62
mov dword [esi + 0x18], 1
lea eax, [esp + 0xdc]
push eax
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
jne 0x1008e81
mov word [0x102a64c], bx
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
jbe 0x1009105
mov edx, dword [esi + 0x1c]
cmp ecx, edx
jae 0x1009105
cmp edx, dword [0x100f710]
ja 0x1009105
movsx eax, word [esp + 0xe8]
add edx, eax
add ecx, eax
mov eax, esi
call fcn.0100699c
cmp dword [esi + 0x98], 1
mov dword [esi + 0x14], ebx
jne 0x1008ec7
mov eax, dword [esi + 0x70]
jmp 0x1008ec9
xor eax, eax
mov dword [esi + 0x10], eax
jmp 0x10090a5
mov byte [0x1023c98], 0
mov eax, dword [esi + 0x18]
cmp eax, 5
jne 0x1008efa
push 3
mov byte [0x1023c98], 0x1b
mov byte [0x1023c99], 0x5b
mov byte [0x1023c9a], 0x63
pop eax
jmp 0x1008f69
cmp eax, 6
jne 0x1009105
lea eax, [esp + 0x7c]
push eax
push dword [0x102a458]
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
jne 0x1008f28
mov word [esp + 0x88], bx
mov word [esp + 0x86], bx
movsx eax, word [esp + 0x86]
mov ecx, dword [esi + 0x14]
sub ecx, eax
movsx eax, word [esp + 0x88]
inc ecx
push ecx
mov ecx, dword [esi + 0x10]
sub ecx, eax
inc ecx
push ecx
push 0x1b
push 0x1001d8c
push 0xfff
push edi
call dword [sym.imp.msvcrt.dll__snprintf]
add esp, 0x18
cmp byte [0x1023c98], 0
je 0x1009105
push eax
push edi
push dword [esp + 0x100]
call fcn.010043e6
jmp 0x1009105
mov eax, dword [esi + 0x14]
mov dword [esi + 0x1fc], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x200], eax
jmp 0x1009105
sub eax, 0x75
je 0x1009043
sub eax, 3
je 0x1008fe5
dec eax
je case.default.0x1007920
sub eax, 4
jne 0x1009105
xor ecx, ecx
cmp dword [esi + 0x6c], ebx
jbe 0x1008fcc
lea eax, [esi + 0x40]
mov edx, dword [eax - 0x28]
mov dword [eax], edx
mov dword [esi + 0x68], ecx
inc ecx
add eax, 4
cmp ecx, dword [esi + 0x6c]
jb 0x1008fbb
lea eax, [esi + 0x40]
push eax
push dword [esi + 0x68]
push esi
push dword [esp + 0x104]
call fcn.01006d7f
jmp 0x1009105
cmp dword [esi + 0x18], ebx
push 0xfff
push 0x1001d74
push edi
je 0x100900c
call dword [sym.imp.msvcrt.dll_strncpy]
mov eax, edi
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x1009003
jmp 0x1009021
call dword [sym.imp.msvcrt.dll_strncpy]
mov eax, edi
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x100901a
sub eax, ecx
cmp byte [0x1023c98], 0
je case.default.0x1007920
push eax
push edi
push dword [esp + 0x100]
call fcn.010043e6
jmp case.default.0x1007920
mov eax, dword [esi + 0x1fc]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x200]
jmp 0x1008ec9
mov eax, dword [esp + 0x10]
cmp byte [eax], 0x38
jne 0x1009105
push esi
push dword [esp + 0xfc]
call fcn.010068c0
jmp 0x1009105
mov eax, dword [esp + 0x10]
mov al, byte [eax]
cmp al, 0x20
jb 0x1009105
mov ecx, dword [esi + 0x6c]
movzx eax, al
sub eax, 0x20
mov dword [esi + ecx*4 + 0x18], eax
inc dword [esi + 0x6c]
cmp dword [esi + 0x6c], ebp
jne case.default.0x1007920
mov eax, dword [esi + 0x18]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x14], eax
mov dword [esi + 0xac], ebx
jmp 0x1009105
cmp ecx, ebx
je case.default.0x1007920
test byte [0x1029a64], 2
je case.default.0x1007920
mov eax, dword [esp + 0x10]
mov al, byte [eax]
cmp al, 0x42
je 0x10091d9
cmp al, 0x4a
je 0x10091d9
cmp al, 0x48
jmp 0x10091d3
cmp ecx, ebx
je case.default.0x1007920
test byte [0x1029a64], 2
je case.default.0x1007920
mov eax, dword [esp + 0x10]
mov al, byte [eax]
cmp al, 0x40
je 0x10090f2
cmp al, 0x42
jne 0x1009105
or dword [esi + 0x20c], 0x40
push 0x100e0b0
push ebx
push esi
call fcn.01006f46
mov dword [esi + 0x78], ebx
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
inc dword [esp + 0x10]
cmp eax, dword [esp + 0x100]
jb 0x1007852
pop ebp
mov edi, dword [esp + 0xf4]
call fcn.0100650a
test byte [0x1029a64], 4
je 0x1009146
test byte [0x100f741], 0xff
je 0x1009146
push esi
call fcn.010072ac
mov ax, word [esi + 0x14]
movzx edx, word [0x1024ca8]
mov word [esp + 0x20], ax
mov ax, word [esi + 0x10]
movsx ecx, ax
cmp edx, ecx
mov word [esp + 0x22], ax
je 0x1009186
test byte [0x1029a64], 4
mov word [0x1024ca8], ax
je 0x1009186
mov eax, dword [esp + 0x22]
inc eax
push eax
push dword [edi + 0x7b8]
call fcn.01006f15
push dword [esp + 0x20]
push dword [edi + 0x7b8]
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov dword [esi + 0xa4], ebx
call fcn.01006049
pop edi
pop esi
pop ebx
add esp, 0xe4
ret 0x10
cmp ecx, ebx
je case.default.0x1007920
test byte [0x1029a64], 2
je case.default.0x1007920
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
sub eax, 0x70
je 0x10090f2
dec eax
jne 0x1009105
and dword [esi + 0x20c], 0xffffffbf
push 0x100e030
jmp 0x10090fe