Function at 0x4375a0
Capabilities:
Accept command line arguments

Disassembly:
sub esp, 0x14
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push ebp
push esi
push edi
push 0x20a
push 0
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push 0x105
mov esi, eax
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edi, eax
mov dword [esp + 0x10], eax
test edi, edi
je 0x4375dc
inc edi
mov dword [esp + 0x10], edi
push esi
push 0
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ecx, eax
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x14], ecx
or esi, 0xffffffff
test ecx, ecx
je 0x437752
jmp 0x437610
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
nop dword [eax]
test ebx, ebx
jne 0x43774e
test esi, esi
je 0x437752
test ebp, ebp
je 0x43764e
lea eax, [esi*2]
add eax, ebp
add eax, eax
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
lea ecx, [ebx + esi*4]
mov dword [ebx], ecx
lea edi, [ecx + edi*2]
mov ecx, dword [esp + 0x14]
jmp 0x437654
mov ebp, dword [esp + 0x10]
mov edi, ecx
mov dword [esp + 0x1c], ecx
xor eax, eax
movzx ecx, word [ecx]
xor esi, esi
mov dword [esp + 0x18], eax
test cx, cx
je 0x437605
mov edx, ecx
nop word [eax + eax]
movzx ecx, dx
mov dword [esp + 0x20], ecx
cmp dx, 0x22
jne 0x437695
xor ecx, ecx
cmp dword [esp + 0x18], ecx
sete cl
test eax, eax
mov dword [esp + 0x18], ecx
mov ecx, edi
cmovne ecx, eax
mov eax, ecx
jmp 0x437705
cmp dword [esp + 0x18], 0
jne 0x4376dd
cmp dx, 0x20
je 0x4376b4
cmp dx, 9
je 0x4376b4
cmp dx, 0xa
je 0x4376b4
cmp dx, 0xd
jne 0x4376dd
test eax, eax
je 0x437705
test esi, esi
jg 0x4376c3
cmp dword [esp + 0x10], 0
jne 0x4376d8
test ebx, ebx
je 0x4376d7
xor ecx, ecx
mov word [edi], cx
add edi, 2
mov dword [ebx + esi*4], eax
inc esi
xor eax, eax
jmp 0x437705
inc ebp
inc esi
xor eax, eax
jmp 0x437705
test eax, eax
mov ecx, edi
cmovne ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x20]
movzx ecx, cx
test esi, esi
jg 0x4376f8
cmp dword [esp + 0x10], 0
jne 0x437705
test ebx, ebx
je 0x437704
mov word [edi], cx
add edi, 2
jmp 0x437705
inc ebp
mov ecx, dword [esp + 0x1c]
add ecx, 2
mov dword [esp + 0x1c], ecx
movzx ecx, word [ecx]
mov edx, ecx
test cx, cx
jne 0x437670
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x437609
test esi, esi
jg 0x437735
cmp dword [esp + 0x10], 0
jne 0x437748
test ebx, ebx
je 0x437747
xor ecx, ecx
mov word [edi], cx
mov dword [ebx + esi*4], eax
inc esi
jmp 0x437605
inc ebp
inc esi
jmp 0x437605
test esi, esi
jg 0x437781
test edi, edi
je 0x43777f
lea eax, [edi*2 + 4]
mov esi, 1
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
mov dword [esp + 0x1c], esi
lea eax, [ebx + 4]
mov dword [ebx], eax
jmp 0x437789
xor esi, esi
mov dword [esp + 0x1c], esi
test esi, esi
jle 0x4377a5
test edi, edi
je 0x4377a5
push edi
push dword [ebx]
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x4377a5
mov eax, dword [ebx]
xor ecx, ecx
mov word [eax + edi*2 - 2], cx
mov eax, dword [0x4d4328]
test eax, eax
je 0x437811
mov ecx, dword [0x4d432c]
test ecx, ecx
je 0x4377eb
mov eax, dword [0x4d4324]
xor edx, edx
cmp eax, ecx
push ecx
cmove eax, edx
push edx
mov dword [0x4d4324], eax
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
push eax
call edi
mov eax, dword [0x4d4328]
mov dword [0x4d432c], 0
jmp 0x4377f1
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call edi
mov dword [0x4d4328], 0
mov dword [0x4d4320], 0
test esi, esi
jle 0x4378be
xor edi, edi
mov dword [0x4d4328], ebx
xor ebp, ebp
mov dword [0x4d4320], esi
cmp dword [esp + 0x1c], edi
jle 0x437851
nop
push dword [ebx + edi*4]
call fcn.0045ede0
mov esi, dword [0x4d4320]
inc ebp
inc edi
add esp, 4
add ebp, eax
cmp edi, esi
jge 0x437851
mov ebx, dword [0x4d4328]
jmp 0x437830
lea eax, [esi*4]
add eax, ebp
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [0x4d4320]
xor ebx, ebx
mov dword [0x4d432c], eax
lea edi, [eax + ecx*4]
test ecx, ecx
jle 0x4378b9
nop
mov eax, dword [0x4d4328]
push dword [eax + ebx*4]
call fcn.0045ede0
lea esi, [eax + 1]
lea ecx, [esi - 1]
push ecx
mov ecx, dword [0x4d4328]
push dword [ecx + ebx*4]
push edi
call fcn.0045ed60
mov eax, dword [0x4d432c]
add esp, 0x10
mov dword [eax + ebx*4], edi
inc ebx
add edi, esi
cmp ebx, dword [0x4d4320]
jl 0x437880
mov dword [0x4d4324], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret