Function at 0x448630
Capabilities:
Accept command line arguments

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, dword [esp + 0x30]
cmp esi, 0x7d1
push edi
jg 0x4487d6
je 0x44878b
lea eax, [esi - 0x3ea]
cmp eax, 4
ja case.0x4487ed.2014
jmp dword [eax*4 + 0x448a50]
push 0x104
push 0x8dcd84
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x4486b1
push 0x5c
push 0x8dcd84
call fcn.0043bda0
add esp, 8
inc eax
or ecx, 0xffffffff
mov byte [eax], 0
lea edi, [eax + 1]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x8dcc80
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4486bf
mov byte [0x8dcd84], 0
mov byte [0x8dcc80], 0
mov eax, dword [esp + 0x38]
dec eax
je 0x44873a
sub eax, 0x7d0
je 0x448707
dec eax
jne case.default.0x448860
mov edi, 0x8dcc80
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, 0x8dcc80
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x3c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
mov edi, 0x8dcd84
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x3c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, 0x8dcd84
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
mov edi, 0x8dcd84
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, 0x8dcd84
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x3c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x20
ret 0xc
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x20
ret 0xc
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx + 8]
mov eax, dword [ecx]
cmp edx, 0x80000401
je 0x448889
cmp edx, 0x80000501
je 0x4487c5
cmp edx, 0x80000601
jne 0x448889
fld qword [ecx]
call fcn.0043c5c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
fld dword [ecx]
call fcn.0043c5c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
lea eax, [esi - 0x7d2]
cmp eax, 0x1f
ja case.0x4487ed.2014
xor ecx, ecx
mov cl, byte [eax + 0x448a98]
jmp dword [ecx*4 + 0x448a64]
mov edx, dword [esp + 0x38]
push edx
call fcn.00448140
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
mov eax, dword [esp + 0x38]
push eax
call fcn.00448280
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ecx
push edx
call fcn.004481d0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
mov eax, dword [esp + 0x38]
cmp eax, 0x80000201
ja 0x448893
je case.0x448860.2147483646
cmp eax, reloc.OLEAUT32.dll_SysStringLen
ja 0x448880
je case.0x448860.2147483646
add eax, 0x7ffffffe
cmp eax, 3
ja case.default.0x448860
jmp dword [eax*4 + 0x448ab8]
mov eax, dword [esp + 0x3c]
push eax
call fcn.004485d0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
cmp eax, 0x80000101
je case.0x448860.2147483646
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
cmp eax, 0x80000501
ja 0x4488aa
je case.0x448860.2147483646
cmp eax, 0x80000301
je case.0x448860.2147483646
cmp eax, 0x80000401
jmp 0x448885
cmp eax, 0x80000601
jne case.default.0x448860
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.00448280
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
mov edx, dword [esp + 0x38]
push edx
call fcn.00448320
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x34]
push 0x45fc10
push ecx
mov dword [0x8c8398], eax
mov dword [esp + 0x3c], 0
call fcn.0043b222
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x20
ret 0xc
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
push 0
push 0
push 0
lea edx, [esp + 0x20]
push 0
push edx
call ebp
test eax, eax
je case.default.0x448860
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageA]
cmp dword [esp + 0x18], 0x12
je case.default.0x448860
push 0
push 0
lea eax, [esp + 0x1c]
push 0
push eax
call esi
lea ecx, [esp + 0x14]
push ecx
call edi
lea edx, [esp + 0x14]
push edx
call ebx
push 0
push 0
push 0
lea eax, [esp + 0x20]
push 0
push eax
call ebp
test eax, eax
jne 0x448941
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dl, byte [eax]
inc eax
cmp dl, 0x22
mov cl, 0x20
jne 0x448996
mov cl, dl
mov dl, byte [eax]
inc eax
cmp dl, cl
je 0x4489a4
mov dl, byte [eax]
inc eax
cmp dl, cl
jne 0x44899d
cmp cl, 0x20
je 0x448889
cmp byte [eax], 0x20
jne 0x448889
pop edi
pop esi
pop ebp
inc eax
pop ebx
add esp, 0x20
ret 0xc
push 0x104
push 0x8dcd84
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je case.default.0x448860
push 0x5c
push 0x8dcd84
call fcn.0043bda0
add esp, 8
mov byte [eax], 0
mov eax, 0x8dcd84
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
push 0x104
push 0x8dcd84
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je case.default.0x448860
push 0x5c
push 0x8dcd84
call fcn.0043bda0
add esp, 8
mov byte [eax], 0
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [esp + 0x10]
push 0x45fc10
push eax
mov dword [esp + 0x18], esi
call fcn.0043b222
mov edi, edi
xchg dword [eax - 0x7778ffbc], ecx
inc esp
add byte [ebp - 0x79], ch
inc esp
add byte [edi + eax*4 + 0x44], bh
add byte [ebx - 0x7a], ah
inc esp
add byte [ecx + ecx*4 - 0x763effbc], al
inc esp
add ah, bh
mov dword [eax + eax + 0x12], eax
mov dword [eax + eax + 0x40], eax
mov byte [eax + eax - 0xc], al
xchg dword [eax + eax + 0xb], eax
mov byte [eax + eax + 0x24], al
mov byte [eax + eax - 0x36], al
mov byte [eax + eax - 0x1d], al
mov byte [eax + eax + 3], al
mov dword [eax + eax - 0x79], eax
mov byte [eax + eax + 0x33], al
mov al, byte [eax + eax]
add dword [edx], eax
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 3
or al, 0xc
or al, 0xc
add al, 5
push es
pop es
or byte [ecx], cl
or al, 0xa
or al, 0xb
or esi, dword [ecx - 0x4effbb78]
mov byte [eax + eax + 0x67], al
mov byte [eax + eax + 0x67], al
mov byte [eax + eax - 0x70], al
nop
nop
nop
nop
nop
nop
nop