Function at 0x4555e0
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov dword [0x4b4998], eax
call fcn.00440e70
test eax, eax
jne 0x455901
push esi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov esi, eax
cmp word [esi], 0x22
jne 0x45560f
push 0x22
lea ecx, [esi + 2]
push ecx
jmp 0x455612
push 0x20
push esi
call fcn.0046f83b
add esp, 8
test eax, eax
jne 0x455622
mov eax, esi
jmp 0x455625
add eax, 2
mov ecx, eax
call fcn.004413f0
call fcn.00408100
test eax, eax
je 0x4558f6
push ebx
push edi
call dword [sym.imp.MMFS2.dll_Ordinal_1055]
push dword [0x4b4b30]
call fcn.0046fce6
mov esi, eax
add esp, 4
mov dword [0x4b4b5c], esi
test esi, esi
je 0x45582a
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x455664
sub ecx, edx
sar ecx, 1
push 2
lea eax, [ecx + 0xc]
push eax
call fcn.0046def4
add esp, 8
mov ebx, eax
sub eax, esi
movzx ecx, word [esi]
mov word [eax + esi], cx
lea esi, [esi + 2]
test cx, cx
jne 0x455685
cmp word [ebx], cx
je 0x4556d3
mov ecx, ebx
lea edx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4556a0
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x4556d3
lea edi, [ebx - 2]
lea ebx, [ebx]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x4556c0
mov eax, dword [0x492e18]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x4556d6
mov eax, dword [str.stdrtd.txt]
mov dword [ecx], eax
mov eax, dword [0x49311c]
mov dword [ecx + 4], eax
mov eax, dword [0x493120]
mov dword [ecx + 8], eax
mov eax, dword [0x493124]
mov dword [ecx + 0xc], eax
mov eax, dword [0x493128]
mov dword [ecx + 0x10], eax
mov ax, word [0x49312c]
push 0
mov word [ecx + 0x14], ax
push ebx
push dword [0x4b4998]
mov ecx, 0x4b4c94
call fcn.00462280
push ebx
call fcn.0046d737
add esp, 4
cmp dword [0x4b4b5c], 0
je 0x45582a
push str.mmfs2.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
mov dword [ebp + 8], edi
test edi, edi
je 0x45582a
mov esi, dword [0x4b4b5c]
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x455760
sub ecx, edx
sar ecx, 1
push 2
lea eax, [ecx + 0xb]
push eax
call fcn.0046def4
add esp, 8
mov ebx, eax
sub eax, esi
movzx ecx, word [esi]
mov word [eax + esi], cx
lea esi, [esi + 2]
test cx, cx
jne 0x455781
cmp word [ebx], cx
je 0x4557d6
mov ecx, ebx
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4557a0
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x4557d6
lea edi, [ebx - 2]
lea ebx, [ebx]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x4557c0
mov eax, dword [0x492e18]
mov dword [edi], eax
mov edi, dword [ebp + 8]
lea edx, [ebx - 2]
lea esp, [esp]
mov ax, word [edx + 2]
lea edx, [edx + 2]
test ax, ax
jne 0x4557e0
mov eax, dword [str.mmfs2.txt]
mov dword [edx], eax
mov eax, dword [0x493148]
mov dword [edx + 4], eax
mov eax, dword [0x49314c]
mov dword [edx + 8], eax
mov eax, dword [0x493150]
push 0
mov dword [edx + 0xc], eax
mov eax, dword [0x493154]
push ebx
push edi
mov ecx, 0x4b4c94
mov dword [edx + 0x10], eax
call fcn.00462280
push ebx
call fcn.0046d737
add esp, 4
xor esi, esi
cmp dword [0x4b31b8], esi
jne 0x455842
mov esi, dword [0x4b4b3c]
test esi, esi
je 0x4558f4
call fcn.00440f50
test eax, eax
jne 0x4558d8
mov edi, dword [sym.imp.KERNEL32.dll_GlobalAddAtomW]
cmp dword [0x4b4ba8], eax
jne 0x45588a
push str.krdp
call edi
movzx eax, ax
push str.kprc
mov dword [0x4b4ba8], eax
call edi
movzx eax, ax
push str.kspc
mov dword [0x4b4ba4], eax
call edi
movzx eax, ax
mov dword [0x4b4bb0], eax
push str.knum
call edi
movzx eax, ax
mov dword [0x4b4bac], eax
call fcn.00423bb0
test eax, eax
je 0x4558f4
push 0
push dword [0x4b4998]
call dword [sym.imp.MMFS2.dll_Ordinal_2]
mov ecx, eax
mov dword [0x4b4b34], ecx
cmp ecx, 0x20
ja 0x455907
xor eax, eax
cmp ecx, 1
setne al
mov dword [0x4b4b34], 0
lea eax, [eax*8 + 0xf]
test eax, eax
jle 0x4558f4
test byte [0x4b4b4e], 1
je 0x4558f4
push ecx
mov ecx, dword [0x4b49a8]
mov edx, eax
call fcn.00442230
add esp, 4
pop edi
pop ebx
call fcn.004426c0
call fcn.004081c0
pop esi
xor eax, eax
pop ebp
ret 0x10
push 4
push 0x42000000
push 0
push 0
xor edx, edx
mov ecx, esi
call fcn.00403340
mov edi, eax
add esp, 0x10
test edi, edi
je 0x4558f4
call dword [sym.imp.MMFS2.dll_Ordinal_794]
push 2
push dword [0x4b4b30]
mov ecx, eax
mov dword [0x4b49c0], eax
call dword [sym.imp.MMFS2.dll_Ordinal_1053]
mov esi, dword [0x4b4b30]
call dword [sym.imp.MMFS2.dll_Ordinal_795]
push 2
push esi
mov ecx, eax
mov dword [0x4b49c4], eax
call dword [sym.imp.MMFS2.dll_Ordinal_1054]
cmp dword [0x4b49c8], 0
jne 0x45598c
mov ecx, dword [0x4b49c4]
test ecx, ecx
je 0x45598c
push dword [0x4b49a8]
call dword [sym.imp.MMFS2.dll_Ordinal_389]
mov dword [0x4b49c8], eax
test eax, eax
je 0x45598c
mov edx, dword [eax]
push 0
mov ecx, eax
call dword [edx + 4]
mov ecx, edi
call fcn.00405a20
test eax, eax
je 0x455a0f
jmp 0x4559a0
xor edx, edx
mov ecx, edi
call fcn.00405b10
test eax, eax
jne 0x4559a0
mov ecx, edi
call fcn.00402a00
call fcn.004337f0
call fcn.00423ef0
cmp dword [edi + 0x1a8], 0
jne 0x455a0f
mov esi, dword [edi + 0x78]
mov eax, 0x32
lea ebx, [eax - 0x31]
cmp esi, 0xa
jbe 0x4559e8
xor edx, edx
lea ecx, [esi + esi]
mov eax, 0x3e8
div ecx
cmp eax, ebx
cmovb eax, ebx
cmp esi, 0x32
cmovae eax, ebx
push eax
call dword [sym.imp.WINMM.dll_timeEndPeriod]
mov eax, dword [0x4b4a88]
test eax, eax
je 0x455a0f
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
mov dword [0x4b4a88], 0
mov ecx, edi
call fcn.00404a30
pop edi
pop ebx
call fcn.004426c0
call fcn.004081c0
pop esi
xor eax, eax
pop ebp
ret 0x10