Function at 0x401da0
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x103c
call fcn.0040c780
mov eax, dword [0x4aa024]
xor eax, esp
mov dword [esp + 0x1038], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ecx, 0x400
lea edx, [esp + 0x40]
call fcn.00401cf0
mov ecx, 0x400
lea edx, [esp + 0x40]
call fcn.00401cf0
lea eax, [esp + 0x40]
push str._GetLoadLibraryWAddress
push eax
call fcn.00403b87
add esp, 8
test eax, eax
jne 0x401f21
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
push 0x4a8200
push esi
mov dword [esp + 0x2c], esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x400
lea ecx, [esp + 0x844]
push ecx
push esi
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [esp + 0x840]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.00402390
lea ecx, [esp + 0x14]
push ecx
lea ebx, [esp + 0x2c]
call fcn.00402600
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
sub ecx, edi
mov eax, 0x66666667
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
je 0x401ed0
xor ebx, ebx
test esi, esi
je 0x401ed0
add edi, 0xc
jmp 0x401e80
mov eax, dword [edi]
mov ecx, 0x4a8200
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401ea7
test dl, dl
je 0x401ea3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401ea7
add eax, 2
add ecx, 2
test dl, dl
jne 0x401e87
xor eax, eax
jmp 0x401eac
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x401eba
inc ebx
add edi, 0x14
cmp ebx, esi
jb 0x401e80
jmp 0x401ecc
mov eax, dword [esp + 0x14]
lea edx, [ebx + ebx*4]
mov eax, dword [eax + edx*4]
add eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x14]
test edi, edi
je 0x401edd
push edi
call fcn.00402ed5
add esp, 4
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
cmp byte [esp + 0x2c], cl
je 0x401f06
mov eax, dword [esp + 0x2d]
cmp eax, ecx
je 0x401f06
push 0x8000
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1038]
xor ecx, esp
call fcn.00402de3
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [esp + 0x40]
push str._GetGetProcAddressAddress
push ecx
call fcn.00403b87
add esp, 8
test eax, eax
jne 0x40200c
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
push 0x4a8210
push esi
mov dword [esp + 0x2c], esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x400
lea edx, [esp + 0x844]
push edx
push esi
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0x840]
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.00402390
lea edx, [esp + 0x14]
push edx
lea ebx, [esp + 0x2c]
call fcn.00402600
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
sub ecx, edi
mov eax, 0x66666667
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
je 0x401ed0
xor ebx, ebx
test esi, esi
je 0x401ed0
add edi, 0xc
mov edi, edi
mov eax, dword [edi]
mov ecx, 0x4a8210
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401fe7
test dl, dl
je 0x401fe3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401fe7
add eax, 2
add ecx, 2
test dl, dl
jne 0x401fc7
xor eax, eax
jmp 0x401fec
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x401ffd
inc ebx
add edi, 0x14
cmp ebx, esi
jb 0x401fc0
jmp 0x401ecc
mov ecx, dword [esp + 0x14]
lea eax, [ebx + ebx*4]
mov eax, dword [ecx + eax*4]
jmp 0x401ec4
lea edx, [esp + 0x40]
push str._OnLoadUSBDongle
push edx
call fcn.00403b87
add esp, 8
test eax, eax
jne 0x402042
push esi
call fcn.00402100
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1038]
xor ecx, esp
call fcn.00402de3
mov esp, ebp
pop ebp
ret 0x10
lea eax, [esp + 0x40]
push str._OnUnloadUSBDongle
push eax
call fcn.00403b87
add esp, 8
test eax, eax
jne 0x402078
push esi
call fcn.00402220
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1038]
xor ecx, esp
call fcn.00402de3
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [esp + 0x40]
push str._OnResetQuota
push ecx
call fcn.00403b87
add esp, 8
test eax, eax
jne 0x4020ae
push esi
call fcn.004022d0
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1038]
xor ecx, esp
call fcn.00402de3
mov esp, ebp
pop ebp
ret 0x10
lea edx, [esp + 0x40]
push edx
call fcn.004044d5
add esp, 4
test eax, eax
je 0x4020e3
mov ecx, eax
call fcn.00401600
test al, al
je 0x4020e3
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1038]
xor ecx, esp
call fcn.00402de3
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [esp + 0x1044]
pop edi
pop esi
pop ebx
xor ecx, esp
or eax, 0xffffffff
call fcn.00402de3
mov esp, ebp
pop ebp
ret 0x10