Function at 0x46bb50
Capabilities:
Accept command line arguments
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x2a2c
call fcn.004c5930
mov eax, dword [0x577760]
xor eax, esp
mov dword [esp + 0x2a28], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor edi, edi
push edi
call dword [sym.imp.ole32.dll_OleInitialize]
push 4
call fcn.004bf242
mov esi, eax
add esp, 4
cmp esi, edi
je 0x46bba6
mov eax, dword [0x577024]
push str.imgdecoder_gdip
mov ecx, esi
mov dword [esi], eax
call fcn.0046c250
mov dword [esp + 0x24], esi
jmp 0x46bbaa
mov dword [esp + 0x24], edi
push 0x206
lea edx, [esp + 0x282e]
xor ecx, ecx
push edi
push edx
mov word [esp + 0x2834], cx
call fcn.004c5420
add esp, 0xc
push 0x208
lea eax, [esp + 0x282c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [esp + 0x2828]
push 0x5c
push ecx
mov esi, 0x562a58
call fcn.004c3457
mov edx, 2
add esp, 8
sub edx, esi
lea ecx, [eax + edx]
nop
movzx eax, word [esi]
mov word [ecx + esi], ax
add esi, 2
cmp ax, di
jne 0x46bc00
lea eax, [esp + 0x2828]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edi
call fcn.0050123d
mov edi, dword [esp + 0x28]
add esp, 4
lea edx, [esp + 0x18]
push edx
call fcn.0046b560
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
push edx
call eax
push 0xc0
call fcn.004bf242
xor edi, edi
add esp, 4
cmp eax, edi
je 0x46bc7d
mov ecx, dword [esp + 0x14]
push str.SOUIHOST
push ebx
push ecx
mov ecx, eax
call fcn.00476277
mov esi, eax
mov dword [esp + 0x20], esi
jmp 0x46bc83
mov dword [esp + 0x20], edi
mov esi, edi
lea edx, [esp + 0xc]
push edx
push edi
mov dword [esp + 0x14], edi
call fcn.004882c3
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
add esp, 8
push edi
push ebx
call edx
mov eax, dword [esp + 0xc]
push eax
mov ecx, esi
call fcn.004749dc
mov ecx, dword [esp + 0xc]
cmp ecx, edi
je 0x46bcbd
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x10]
push ecx
push edi
mov dword [esp + 0x18], edi
call fcn.004882c3
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
add esp, 8
push edi
push ebx
call eax
push 1
push 0x12
push 0x556c18
mov ecx, esi
call fcn.00473709
mov ecx, dword [esp + 0x10]
push str.uidef:xml_init
push ecx
lea ecx, [esi + 0x1c]
call fcn.00470b7d
push str.iectrl
lea ecx, [esp + 0x30]
mov dword [esp + 0x2c], vtable.SOUI::TplSWindowFactory_class_SOUI::SIECtrl_.0
call fcn.0046a580
lea edi, [esi + 4]
lea eax, [esp + 0x28]
call fcn.0046b480
mov esi, dword [esp + 0x2c]
add esi, 0xfffffff4
cmp esi, dword [0x577020]
je 0x46bd43
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x46bd43
push esi
call fcn.0046d360
add esp, 4
lea edx, [esp + 0x1c]
xor edi, edi
push edx
mov dword [esp + 0x20], edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], edi
cmp dword [esp + 0x1c], edi
jle 0x46bfad
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + ecx*4]
mov edx, 0x562b24
mov ecx, eax
nop
mov si, word [ecx]
cmp si, word [edx]
jne 0x46bda6
cmp si, di
je 0x46bda2
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x46bda6
add ecx, 4
add edx, 4
cmp si, di
jne 0x46bd80
xor ecx, ecx
jmp 0x46bdab
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, edi
je 0x46bde5
mov edx, 0x562b2c
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x46bddc
cmp si, di
je 0x46bdd8
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x46bddc
add ecx, 4
add edx, 4
cmp si, di
jne 0x46bdb6
xor ecx, ecx
jmp 0x46bde1
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, edi
jne 0x46be2c
mov ebx, 1
mov dword [0x59276c], ebx
mov edx, 0x562b2c
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x46be1d
cmp si, di
je 0x46be19
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x46be1d
add ecx, 4
add edx, 4
cmp si, di
jne 0x46bdf7
xor ecx, ecx
jmp 0x46be22
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, edi
jne 0x46be2c
mov dword [0x592978], ebx
xor edx, edx
mov ecx, eax
mov dword [esp + 0x2804], 7
mov dword [esp + 0x2800], edi
mov word [esp + 0x27f0], dx
lea esi, [ecx + 2]
lea ecx, [ecx]
mov dx, word [ecx]
add ecx, 2
cmp dx, di
jne 0x46be50
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x27f4]
call fcn.00422da0
push 2
push 0x562b34
mov eax, esi
push eax
call fcn.00422550
cmp eax, 0xffffffff
je 0x46bf7c
push 0xffffffffffffffff
mov ecx, 2
lea esi, [esp + 0x2810]
lea edx, [esp + 0x27f4]
call fcn.00422020
mov esi, eax
lea ecx, [esp + 0x27f0]
mov ebx, 8
cmp ecx, esi
je 0x46bf37
cmp dword [esp + 0x2804], ebx
jb 0x46becd
mov edx, dword [esp + 0x27f0]
push edx
call fcn.004bf135
add esp, 4
xor eax, eax
mov dword [esp + 0x2804], 7
mov dword [esp + 0x2800], edi
mov word [esp + 0x27f0], ax
cmp dword [esi + 0x14], ebx
jae 0x46bf09
mov ecx, dword [esi + 0x10]
lea edx, [ecx + ecx + 2]
push edx
lea eax, [esp + 0x27f4]
push esi
push eax
call fcn.004be9e0
add esp, 0xc
jmp 0x46bf14
mov ecx, dword [esi]
mov dword [esp + 0x27f0], ecx
mov dword [esi], edi
mov edx, dword [esi + 0x10]
mov dword [esp + 0x2800], edx
mov eax, dword [esi + 0x14]
mov dword [esp + 0x2804], eax
xor ecx, ecx
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], edi
mov word [esi], cx
cmp dword [esp + 0x2820], ebx
jb 0x46bf50
mov edx, dword [esp + 0x280c]
push edx
call fcn.004bf135
add esp, 4
mov eax, dword [esp + 0x27f0]
cmp dword [esp + 0x2804], ebx
jae 0x46bf67
lea eax, [esp + 0x27f0]
push eax
push 0x104
push 0x592770
call fcn.004bfaf0
add esp, 0xc
jmp 0x46bf81
mov ebx, 8
cmp dword [esp + 0x2804], ebx
jb 0x46bf9a
mov eax, dword [esp + 0x27f0]
push eax
call fcn.004bf135
add esp, 4
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x1c]
jl 0x46bd6d
lea ecx, [esp + 0x30]
push ecx
call fcn.00468d80
push edi
push edi
push edi
push edi
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [esp + 0x44]
call fcn.0047f983
mov eax, dword [esp + 0x10]
push 0x592990
mov dword [0x594700], eax
call fcn.00457170
push edi
cmp dword [0x59276c], edi
je 0x46c056
xor edx, edx
mov eax, 0x560238
lea esi, [esp + 0x27f4]
mov dword [esp + 0x2808], 7
mov dword [esp + 0x2804], edi
mov word [esp + 0x27f4], dx
call fcn.00422da0
mov eax, esi
push eax
mov ecx, 0x592990
call fcn.00455fb0
mov ecx, dword [esp + 0x270]
push 1
push 0xc93
push ecx
mov ecx, 0x592990
call fcn.00456ac0
cmp dword [esp + 0x2804], 8
jb 0x46c06a
mov edx, dword [esp + 0x27f0]
push edx
call fcn.004bf135
add esp, 4
jmp 0x46c06a
mov eax, dword [esp + 0x274]
push edi
push 0xc8e
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x270]
mov esi, dword [esp + 0x20]
push ecx
mov ecx, esi
call fcn.004736e0
cmp dword [esp + 0x27e4], 8
mov ebx, eax
mov dword [esp + 0x30], vtable.CMainDlg.0
mov dword [esp + 0x34], vtable.CMainDlg.1.0
mov dword [esp + 0x38], vtable.CMainDlg.2.0
mov dword [esp + method.CMainDlg.3.virtual_0], vtable.CMainDlg.3.0
mov dword [esp + method.CMainDlg.4.virtual_0], vtable.CMainDlg.4.0
jb 0x46c0c7
mov edx, dword [esp + 0x27d0]
push edx
call fcn.004bf135
add esp, 4
xor eax, eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x27e4], 7
mov dword [esp + 0x27e0], edi
mov word [esp + 0x27d0], ax
call fcn.0047ecbe
cmp esi, edi
je 0x46c0fa
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
mov ecx, dword [esp + 0x10]
cmp ecx, edi
je 0x46c109
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
cmp ecx, edi
je 0x46c118
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
cmp ecx, edi
je 0x46c127
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x24]
test edi, edi
je 0x46c159
mov esi, dword [edi]
sub esi, 0xc
cmp esi, dword [0x577020]
je 0x46c150
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x46c150
push esi
call fcn.0046d360
add esp, 4
push edi
call fcn.004bf135
add esp, 4
call dword [sym.imp.ole32.dll_OleUninitialize]
mov ecx, dword [esp + 0x2a34]
pop edi
pop esi
mov eax, ebx
pop ebx
xor ecx, esp
call fcn.004be8b8
mov esp, ebp
pop ebp
ret 0x10