Function at 0x10022d0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xab4
and dword [ebp - 0x14], 0
or dword [ebp - 8], 0xffffffff
or dword [ebp - 4], 0xffffffff
cmp dword [ebp + 8], 2
push ebx
mov ebx, dword [sym.imp.MSVCRT.dll__strcmpi]
push esi
push edi
jne 0x100230e
mov esi, dword [ebp + 0xc]
push 0x1001160
push dword [esi + 4]
call ebx
pop ecx
test eax, eax
pop ecx
jne 0x1002317
call fcn.01002f06
jmp 0x1002311
mov esi, dword [ebp + 0xc]
cmp dword [ebp + 8], 3
jge 0x100231c
call fcn.010032ed
cmp dword [esi + 4], 0
lea edi, [esi + 4]
mov dword [ebp - 0x10], edi
je 0x1002431
mov dword [ebp + 8], 2
mov esi, edi
push 0x1001160
push dword [edi]
call ebx
pop ecx
test eax, eax
pop ecx
jne 0x1002349
call fcn.01002f06
push 0x100115c
push dword [edi]
call ebx
pop ecx
test eax, eax
pop ecx
jne 0x1002362
mov eax, dword [0x1004018]
mov dword [0x100403c], eax
push 0x1001158
push dword [edi]
call ebx
pop ecx
test eax, eax
pop ecx
jne 0x100237b
mov eax, dword [0x1004018]
mov dword [0x100405c], eax
push 0x1001154
push dword [edi]
call ebx
pop ecx
test eax, eax
pop ecx
jne 0x1002390
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
cmp dword [esi + 4], 0
lea edi, [esi + 4]
je 0x1002420
push 0x1001150
push dword [esi]
call ebx
pop ecx
test eax, eax
pop ecx
jne 0x10023b4
mov eax, dword [ebp + 8]
mov dword [0x1004040], eax
cmp dword [edi], 0
je 0x1002420
push 0x100114c
push dword [esi]
call ebx
pop ecx
test eax, eax
pop ecx
jne 0x10023d0
mov eax, dword [ebp + 8]
mov dword [0x1004038], eax
cmp dword [edi], 0
je 0x1002420
push 0x1001148
push dword [esi]
call ebx
pop ecx
test eax, eax
pop ecx
jne 0x10023ec
mov eax, dword [ebp + 8]
mov dword [0x1004020], eax
cmp dword [edi], 0
je 0x1002420
push 0x1001144
push dword [esi]
call ebx
pop ecx
test eax, eax
pop ecx
jne 0x1002420
mov eax, dword [ebp + 8]
mov dword [0x1004024], eax
inc eax
mov dword [0x1004048], eax
cmp dword [edi + 4], 0
jne 0x1002420
push 0
push 0x1399
call fcn.0100306a
inc dword [ebp + 8]
mov esi, edi
cmp dword [esi], 0
jne 0x1002335
mov esi, dword [ebp + 0xc]
mov edx, dword [esi + 8]
cmp byte [edx], 0x2d
je 0x1002472
mov dword [0x1004058], 1
mov edx, dword [esi + 8]
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea esi, [ebp - 0x4d8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [ebp + 8], esi
mov eax, ecx
mov esi, edi
mov edi, dword [ebp + 8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0xc]
push 0x1001154
push edx
call ebx
pop ecx
test eax, eax
pop ecx
jne 0x100248a
mov dword [0x1004058], 2
push 0x1001150
push dword [esi + 8]
call ebx
pop ecx
test eax, eax
pop ecx
jne 0x10024a4
mov dword [0x1004058], 3
mov eax, dword [0x1004058]
dec eax
je 0x10027e5
dec eax
je 0x1002762
dec eax
jne 0x1002806
movsx eax, byte [0x1004034]
mov cl, al
lea edi, [ebp - 0x28]
mov ch, cl
mov esi, 0x100113c
mov eax, ecx
shl eax, 0x10
mov ax, cx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea edi, [ebp - 0x28]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
cmp dword [0x100403c], edi
je 0x1002502
mov eax, 0x98967f
mov dword [0x1004024], 1
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
cmp dword [0x1004040], edi
jne 0x1002515
push edi
push 0x13a7
call fcn.0100306a
mov eax, dword [0x1004020]
or esi, 0xffffffff
cmp eax, esi
je 0x100253e
cmp dword [0x100403c], edi
jne 0x100253e
mov ebx, dword [ebp + 0xc]
lea ecx, [ebp - 4]
push ecx
lea ecx, [ebp - 8]
push ecx
push dword [ebx + eax*4]
call fcn.01002dbc
jmp 0x1002541
mov ebx, dword [ebp + 0xc]
mov eax, dword [0x1004024]
cmp eax, esi
je 0x1002562
cmp dword [0x100403c], edi
jne 0x1002562
lea ecx, [ebp - 4]
push ecx
lea ecx, [ebp - 8]
push ecx
push dword [ebx + eax*4]
call fcn.01002dbc
cmp dword [ebp - 8], edi
jl 0x100257c
cmp dword [ebp - 4], edi
jge 0x1002587
cmp dword [0x1004020], edi
je 0x1002587
cmp dword [0x100403c], edi
jne 0x1002587
push edi
push 0x1392
call fcn.0100306a
cmp dword [ebp - 8], edi
jl 0x10025a1
cmp dword [ebp - 4], edi
jge 0x10025ac
cmp dword [0x1004024], edi
je 0x10025ac
cmp dword [0x100403c], edi
jne 0x10025ac
push edi
push 0x1393
call fcn.0100306a
mov edx, dword [0x1004038]
cmp edx, edi
jle 0x1002624
mov edi, dword [ebx + edx*4]
mov ecx, esi
xor eax, eax
mov dword [ebp + 8], edi
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [ebp - 0x28]
mov eax, ecx
mov ecx, esi
mov dword [ebp + 0xc], eax
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [ebp + 0xc]
not ecx
dec ecx
add eax, ecx
cmp eax, 0x14
jb 0x10025f3
push dword [ebp + 8]
push 0x139c
call fcn.0100306a
mov edx, dword [0x1004038]
mov edi, dword [ebx + edx*4]
or ecx, 0xffffffff
xor eax, eax
lea esi, [ebp - 0x28]
repne scasb al, byte es:[edi]
not ecx
mov eax, esi
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor edi, edi
mov eax, dword [0x1004040]
push 0x1001138
push dword [ebx + eax*4]
call dword [sym.imp.MSVCRT.dll_fopen]
pop ecx
cmp eax, edi
pop ecx
mov dword [0x1004070], eax
jne 0x1002654
mov eax, dword [0x1004040]
push dword [ebx + eax*4]
push 0x13a6
call fcn.0100306a
push dword [0x1004070]
mov edi, dword [sym.imp.MSVCRT.dll_fgets]
lea eax, [ebp - 0xab4]
push 0x3e8
push eax
call edi
add esp, 0xc
test eax, eax
je 0x10026bc
mov eax, dword [0x1004048]
push dword [ebx + eax*4]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xab4]
push dword [ebp - 4]
push dword [ebp - 8]
push eax
call fcn.01002bec
mov esi, eax
test esi, esi
jne 0x1002712
push dword [0x1004070]
inc dword [0x1004054]
lea eax, [ebp - 0xab4]
push 0x3e8
push eax
call edi
add esp, 0xc
test eax, eax
jne 0x1002675
jmp 0x10026bf
mov esi, dword [ebp + 0xc]
test esi, esi
jne 0x1002712
push dword [0x1004070]
call dword [sym.imp.MSVCRT.dll_fclose]
xor eax, eax
pop ecx
cmp dword [0x100403c], eax
je 0x10026e1
push eax
push eax
call fcn.0100306a
push dword [ebp - 4]
lea eax, [ebp - 0x4d8]
push dword [ebp - 8]
push 0x1001130
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea eax, [ebp - 0x4d8]
push eax
push 0x1394
call fcn.0100306a
jmp 0x1002806
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp - 0xc], 1
repne scasb al, byte es:[edi]
not ecx
push ecx
lea eax, [ebp - 0x4d8]
push esi
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
lea eax, [ebp - 0x4d8]
push eax
push 0x1001118
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 0x14
lea eax, [ebp - 0x4d8]
push dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.01002830
push 0
push 0
jmp 0x1002708
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x10027a7
lea esi, [esi + eax*4]
mov eax, dword [esi]
test eax, eax
je 0x100278d
lea ecx, [ebp - 0xf0]
push ecx
lea ecx, [ebp - 0x6cc]
push ecx
lea ecx, [ebp - 0x8c]
push ecx
push eax
call fcn.01002aec
cmp dword [esi], 0
jne 0x10027a7
push 0x10010f0
call dword [sym.imp.MSVCRT.dll_printf]
push 1
call dword [sym.imp.MSVCRT.dll_exit]
pop ecx
pop ecx
lea eax, [ebp - 0x4d8]
push 0x3e8
push eax
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0x6cc]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.010028f4
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x4d8]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.010029eb
push dword [ebp - 0xc]
jmp 0x10027f5
lea eax, [ebp - 0x4d8]
push eax
call fcn.01002aa3
mov dword [ebp - 0xc], eax
push eax
lea eax, [ebp - 0x4d8]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.01002830
xor esi, esi
push esi
push 0x3e8
push 2
push 0x10010e4
push esi
push 0x1a
push pe_overlay
call dword [sym.imp.USER32.dll_SendMessageTimeoutA]
push esi
call dword [sym.imp.MSVCRT.dll_exit]
pop ecx
pop edi
pop esi
pop ebx
leave
ret