Function at 0x43e170
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4bb728
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
mov ebx, dword [esp + 0x78]
push ebp
xor ebp, ebp
cmp ebx, ebp
push esi
push edi
jne 0x43e1b6
push 0x152
push str.HldsUpdateTool.cpp
push str.argv
push str.NonNullArgv
call fcn.00421210
mov ecx, eax
call fcn.00421040
call fcn.0043e0e0
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x80]
cmp eax, 1
jle 0x43e328
mov esi, dword [ebx + 4]
mov edi, str._update
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x43e328
push str.WARNING__Using_deprecated_syntax__Run_tool_without_commands_to_see_new_syntax_n
call fcn.004a0f38
mov eax, str.update
add esp, 4
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e200
sub eax, edx
push eax
push str.update
mov ecx, 0x50a81c
call fcn.00406650
mov edi, dword [esp + 0x80]
cmp edi, 2
jne 0x43e291
lea ecx, [esp + 0x18]
call fcn.0049e7ab
mov eax, str.Missing_game_parameter
mov dword [esp + 0x78], ebp
mov dword [esp + 0x18], vtable.common::ICloneableException.0
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebp
mov byte [esp + 0x28], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e253
sub eax, edx
push eax
push str.Missing_game_parameter
lea ecx, [esp + 0x2c]
call fcn.00406650
push 0x4eee04
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x48], ebp
mov dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x20], vtable.common::CRuntimeError.0
call fcn.0049e394
mov edx, dword [ebx + 8]
mov eax, edx
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e2a0
sub eax, esi
push eax
push edx
mov ecx, 0x50a984
call fcn.00406650
cmp edi, 3
je 0x43e315
mov ecx, dword [ebx + 0xc]
push ecx
mov ecx, 0x50a9c0
call fcn.00406ba0
cmp edi, 4
je 0x43e315
mov edx, dword [ebx + 0x10]
push edx
mov ecx, 0x50a858
call fcn.00406ba0
cmp edi, 5
je 0x43e315
mov eax, dword [ebx + 0x14]
push eax
mov ecx, 0x50a8d0
call fcn.00406ba0
cmp edi, 6
je 0x43e315
mov esi, dword [ebx + 0x18]
mov edi, 0x4cd604
mov ecx, 2
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x43e315
push str.present
mov ecx, 0x50aa38
call fcn.00406ba0
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
add esp, 0x6c
ret
mov ebp, 1
cmp eax, ebp
jle 0x43e315
mov ecx, dword [ebx + ebp*4]
mov eax, ecx
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], 0
mov byte [esp + 0x1c], 0
lea esi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x43e350
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00406650
mov edi, dword [esp + 0x84]
lea eax, [esp + 0x18]
push eax
mov ecx, edi
mov dword [esp + 0x7c], 1
call fcn.00437210
cmp eax, dword [edi + 4]
mov dword [esp + 0x10], eax
je 0x43e3b5
cmp dword [eax + 0x24], 0x10
mov ecx, dword [eax + 0x20]
jb 0x43e396
mov eax, dword [eax + 0x10]
jmp 0x43e399
add eax, 0x10
push ecx
mov ecx, dword [esp + 0x30]
push eax
push ecx
push 0
lea ecx, [esp + 0x28]
call fcn.00412ec0
test eax, eax
jl 0x43e3b5
lea eax, [esp + 0x10]
jmp 0x43e3c0
mov edx, dword [edi + 4]
mov dword [esp + 0x14], edx
lea eax, [esp + 0x14]
mov esi, dword [eax]
cmp dword [esp + 0x30], 0x10
mov dword [esp + 0x78], 0xffffffff
jb 0x43e3de
mov eax, dword [esp + 0x1c]
push eax
call fcn.0049db86
add esp, 4
cmp esi, dword [edi + 4]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], 0
mov byte [esp + 0x1c], 0
jne 0x43e40e
mov ecx, dword [ebx + ebp*4]
push ecx
push str.WARNING:_unrecognized_parameter__s_n
call fcn.004a0f38
add esp, 8
jmp 0x43e49f
mov esi, dword [esi + 0x28]
mov al, byte [esi + 0x38]
test al, al
je 0x43e480
mov edx, dword [esp + 0x80]
dec edx
cmp ebp, edx
je 0x43e4c2
mov ecx, dword [ebx + ebp*4 + 4]
inc ebp
mov eax, ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x43e432
sub eax, edi
cmp eax, 0xff
jae 0x43e4ec
mov eax, ecx
lea edi, [eax + 1]
jmp 0x43e450
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x43e450
sub eax, edi
push eax
push ecx
lea ecx, [esi + 0x1c]
call fcn.00406650
mov eax, dword [ebx + ebp*4]
cmp byte [eax], 0x2d
jne 0x43e49f
mov ecx, dword [ebx + ebp*4 - 4]
push ecx
push eax
push str.WARNING:_argument__s_for_parameter__s_looks_like_a_parameter_n
call fcn.004a0f38
add esp, 0xc
jmp 0x43e49f
mov eax, str.present
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e488
sub eax, edx
push eax
push str.present
lea ecx, [esi + 0x1c]
call fcn.00406650
mov eax, dword [esp + 0x80]
inc ebp
cmp ebp, eax
jl 0x43e331
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x6c
ret
mov edx, dword [ebx + ebp*4]
push edx
push str.Missing_argument_for_parameter__s_n
lea eax, [esp + 0x20]
push 0x80
push eax
call fcn.004209c0
add esp, 0x10
push 0x4eee04
lea ecx, [esp + 0x1c]
push ecx
call fcn.0049e394
lea ecx, [esp + 0x44]
call fcn.0049e7ab
xor esi, esi
mov eax, str.argument_too_long
mov dword [esp + 0x78], 2
mov dword [esp + 0x44], vtable.common::ICloneableException.0
mov dword [esp + 0x68], 0xf
mov dword [esp + 0x64], esi
mov byte [esp + 0x54], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43e520
sub eax, edx
push eax
push str.argument_too_long
lea ecx, [esp + 0x58]
call fcn.00406650
push 0x4eee04
lea edx, [esp + 0x48]
push edx
mov dword [esp + 0x74], esi
mov dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x4c], vtable.common::CRuntimeError.0
call fcn.0049e394
int3