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

Disassembly:
push 0xffffffffffffffff
push 0x5c2847
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
mov eax, dword [0x6dd9a4]
xor eax, esp
mov dword [esp + 0xa4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6dd9a4]
xor eax, esp
push eax
lea eax, [esp + 0xbc]
mov dword fs:[0], eax
mov esi, dword [esp + 0xcc]
xor ebx, ebx
mov dword [esp + 0x68], ebx
mov ebp, ecx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov ecx, dword [ebp + 0x40]
lea eax, [ebp + 0x40]
neg ecx
sbb ecx, ecx
test ecx, fcn.00501740
mov edi, 1
mov dword [esp + 0xc4], edi
je 0x509b86
push eax
lea ecx, [esp + 0x58]
call fcn.00507cd0
mov edx, dword [ebp + 0x20]
neg edx
sbb edx, edx
test edx, fcn.00501740
je 0x509be4
mov eax, 0x509900
push ebp
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.00509aa0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xc8], 2
call fcn.00507cd0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov byte [esp + 0xc4], 1
je 0x509be4
mov eax, dword [eax]
cmp eax, ebx
je 0x509be4
lea ecx, [esp + 0x24]
push 2
push ecx
mov edx, ecx
push edx
call eax
add esp, 0xc
test byte [ebp + 0x10], 1
je 0x509c39
mov eax, fcn.00508b70
push ebp
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.00509aa0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xc8], 3
call fcn.00507cd0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov byte [esp + 0xc4], 1
je 0x509c39
mov eax, dword [eax]
cmp eax, ebx
je 0x509c39
lea ecx, [esp + 0x24]
push 2
push ecx
mov edx, ecx
push edx
call eax
add esp, 0xc
test dword [ebp + 0x10], 0x800
je 0x509c91
mov eax, 0x5095a0
push ebp
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.00509aa0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xc8], 4
call fcn.00507cd0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov byte [esp + 0xc4], 1
je 0x509c91
mov eax, dword [eax]
cmp eax, ebx
je 0x509c91
lea ecx, [esp + 0x24]
push 2
push ecx
mov edx, ecx
push edx
call eax
add esp, 0xc
mov eax, dword [ebp + 0x10]
test al, 2
je 0x509ceb
test al, 4
je 0x509ceb
mov eax, 0x508e80
push ebp
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.00509aa0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xc8], 5
call fcn.00507cd0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov byte [esp + 0xc4], 1
je 0x509ceb
mov eax, dword [eax]
cmp eax, ebx
je 0x509ceb
lea ecx, [esp + 0x24]
push 2
push ecx
mov edx, ecx
push edx
call eax
add esp, 0xc
mov eax, dword [ebp + 0x10]
test al, 2
je 0x509d45
test al, 8
je 0x509d45
mov eax, 0x509380
push ebp
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.00509aa0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xc8], 6
call fcn.00507cd0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov byte [esp + 0xc4], 1
je 0x509d45
mov eax, dword [eax]
cmp eax, ebx
je 0x509d45
lea ecx, [esp + 0x24]
push 2
push ecx
mov edx, ecx
push edx
call eax
add esp, 0xc
mov eax, 0x509740
push ebp
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.00509aa0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xc8], 7
call fcn.00507cd0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov byte [esp + 0xc4], 1
je 0x509d94
mov eax, dword [eax]
cmp eax, ebx
je 0x509d94
lea ecx, [esp + 0x24]
push 2
push ecx
mov edx, ecx
push edx
call eax
add esp, 0xc
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov ecx, ebp
mov dword [esp + 0x68], edi
call fcn.0042b475
test al, al
jne 0x50a191
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x18], ebx
jmp 0x509dc0
mov edi, dword [esp + 0x58]
cmp edi, ebx
je 0x50a02c
mov esi, dword [esp + 0x5c]
sub esi, edi
sar esi, 5
cmp dword [esp + 0x4c], esi
jae 0x50a02c
mov ecx, ebp
call fcn.00401780
cmp dword [esp + 0x4c], esi
mov dword [esp + 0x64], eax
jb 0x509df9
call fcn.00512070
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x18]
push ebp
lea edx, [esp + 0x40]
lea ecx, [edi + eax]
push edx
call fcn.00508890
mov esi, dword [esp + 0x40]
cmp esi, ebx
mov edi, dword [esp + 0x44]
je 0x509fa5
mov ecx, edi
sub ecx, esi
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x509fa5
xor ebx, ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov byte [esp + 0xc4], 9
xor ebp, ebp
mov edi, edi
test esi, esi
jne 0x509e58
xor eax, eax
jmp 0x509e6d
mov ecx, edi
sub ecx, esi
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, 0xffffffff
cmp ebp, eax
jae 0x509eb9
test esi, esi
je 0x509e8f
sub edi, esi
mov eax, 0x78787879
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x509e98
call fcn.00512070
mov esi, dword [esp + 0x40]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x54]
add esi, ebx
push esi
call fcn.00508030
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
add ebp, 1
add ebx, 0x44
jmp 0x509e50
cmp esi, edi
mov ebx, edi
jbe 0x509ecc
call fcn.00512070
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
lea eax, [esp + 0x3c]
mov ebp, eax
lea eax, [ebx - 0x44]
cmp eax, edi
mov dword [esp + 0x70], ebx
ja 0x509ee1
cmp eax, esi
jae 0x509ee6
call fcn.00512070
lea esi, [ebx - 0x44]
cmp esi, dword [ebp + 8]
jb 0x509ef3
call fcn.00512070
mov ecx, dword [esp + 0x50]
push ecx
push esi
call fcn.00508030
xor ebp, ebp
xor ebx, ebx
mov esi, dword [esp + 0x40]
test esi, esi
mov edi, dword [esp + 0x44]
je 0x509f3b
mov ecx, edi
sub ecx, esi
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jae 0x509f3b
mov ecx, dword [esp + 0x14]
add esi, ebx
push esi
call fcn.00508a90
add ebp, 1
add ebx, 0x44
jmp 0x509f02
mov eax, dword [esp + 0x20]
test eax, eax
je 0x509f91
mov edi, dword [esp + 0x24]
cmp eax, edi
je 0x509f80
lea esi, [eax + 0x18]
mov edi, edi
cmp dword [esi], 0x10
jb 0x509f61
mov eax, dword [esi - 0x14]
push eax
call fcn.005112a2
add esp, 4
mov dword [esi], 0xf
mov dword [esi - 4], 0
mov byte [esi - 0x14], 0
add esi, 0x1c
lea edx, [esi - 0x18]
cmp edx, edi
jne 0x509f50
mov eax, dword [esp + 0x20]
push eax
call fcn.005112a2
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
add esp, 4
mov ebp, dword [esp + 0x50]
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
xor ebx, ebx
mov ecx, ebp
call fcn.00401780
cmp eax, dword [esp + 0x64]
mov byte [esp + 0xc4], 1
jne 0x509ff8
cmp esi, ebx
je 0x509fdd
cmp esi, edi
je 0x509fd4
mov ecx, esi
call fcn.0042c2f4
add esi, 0x44
cmp esi, edi
jne 0x509fc2
mov esi, dword [esp + 0x40]
push esi
call fcn.005112a2
add esp, 4
add dword [esp + 0x4c], 1
add dword [esp + 0x18], 0x20
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
jmp 0x509dc0
cmp esi, ebx
je 0x50a01b
cmp esi, edi
je 0x50a012
mov ecx, esi
call fcn.0042c2f4
add esi, 0x44
cmp esi, edi
jne 0x50a000
mov esi, dword [esp + 0x40]
push esi
call fcn.005112a2
add esp, 4
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
jmp 0x50a182
mov dword [esp + 0x8c], 0xf
mov dword [esp + 0x88], ebx
mov byte [esp + 0x78], 0
mov dword [esp + 0x90], 0xffffffff
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xb4], 0
mov eax, dword [ebp + 4]
cmp eax, ebx
mov byte [esp + 0xc4], 0xc
je 0x50a0a9
mov ecx, dword [ebp + 8]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x50a0ae
call fcn.00512070
mov ecx, dword [ebp + 4]
push ecx
lea ecx, [esp + 0x98]
call fcn.00415841
mov eax, dword [ebp + 4]
cmp eax, ebx
je 0x50a0df
mov ecx, dword [ebp + 8]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x50a0e4
call fcn.00512070
mov ecx, dword [ebp + 4]
push ecx
lea ecx, [esp + 0xa8]
call fcn.00415841
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x74]
push edx
call fcn.00508a90
mov ebx, dword [ebp + 4]
cmp ebx, dword [ebp + 8]
jbe 0x50a10f
call fcn.00512070
mov edi, dword [ebp + 8]
lea esi, [ebx + 0x1c]
cmp esi, edi
je 0x50a134
sub ebx, esi
jmp 0x50a120
push 0xffffffffffffffff
push 0
push esi
lea ecx, [esi + ebx]
call fcn.0040f4da
add esi, 0x1c
cmp esi, edi
jne 0x50a120
mov edi, dword [ebp + 8]
lea esi, [edi - 0x1c]
cmp esi, edi
je 0x50a16b
add esi, 0x18
xor ebx, ebx
cmp dword [esi], 0x10
jb 0x50a154
mov eax, dword [esi - 0x14]
push eax
call fcn.005112a2
add esp, 4
mov dword [esi], 0xf
mov dword [esi - 4], ebx
mov byte [esi - 0x14], 0
add esi, 0x1c
lea eax, [esi - 0x18]
cmp eax, edi
jne 0x50a143
add dword [ebp + 8], 0xffffffe4
lea ecx, [esp + 0x74]
mov byte [esp + 0xc4], 1
call fcn.0042c2f4
xor ebx, ebx
mov ecx, ebp
call fcn.0042b475
test al, al
je 0x509db0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
xor esi, esi
call fcn.0042b623
test eax, eax
jbe 0x50a23d
xor edi, edi
lea ebx, [ebx]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
cmp eax, ebx
je 0x50a1d7
mov edx, ecx
mov ecx, dword [edx + 8]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x50a1dc
call fcn.00512070
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
cmp dword [eax + edi + 0x14], ebx
jne 0x50a226
cmp eax, ebx
je 0x50a20b
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x50a210
call fcn.00512070
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + 4]
mov dword [ecx + edi + 0x1c], eax
add eax, 1
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x14]
add esi, 1
add edi, 0x44
call fcn.0042b623
cmp esi, eax
jb 0x50a1b0
cmp dword [ebp + 0x1c], ebx
mov esi, dword [esp + 0x14]
je 0x50a2d3
mov ecx, esi
xor ebx, ebx
xor edi, edi
call fcn.0042b623
test eax, eax
jbe 0x50a2d3
mov dword [esp + 0x18], edi
mov eax, dword [esi + 4]
test eax, eax
je 0x50a27e
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x50a283
call fcn.00512070
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 4]
add esi, dword [esp + 0x18]
cmp dword [esi + 0x1c], 0xffffffff
je 0x50a2bc
mov ecx, dword [ebp + 0x1c]
call fcn.0050f620
cmp ebx, eax
jae 0x50a352
mov ecx, dword [ebp + 0x1c]
push ebx
call fcn.0050f650
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.0040f4da
add ebx, 1
mov esi, dword [esp + 0x14]
add dword [esp + 0x18], 0x44
mov ecx, esi
add edi, 1
call fcn.0042b623
cmp edi, eax
jb 0x50a25d
mov eax, dword [esp + 0x58]
test eax, eax
mov byte [esp + 0xc4], 0
je 0x50a326
mov ecx, dword [esp + 0x5c]
cmp eax, ecx
mov edi, ecx
mov esi, eax
je 0x50a319
nop
mov eax, dword [esi]
test eax, eax
je 0x50a30e
mov ecx, dword [eax]
test ecx, ecx
je 0x50a308
lea eax, [esi + 8]
push 2
push eax
push eax
call ecx
add esp, 0xc
mov dword [esi], 0
add esi, 0x20
cmp esi, edi
jne 0x50a2f0
mov eax, dword [esp + 0x58]
push eax
call fcn.005112a2
mov esi, dword [esp + 0x18]
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0xbc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xa4]
xor ecx, esp
call fcn.005112a7
add esp, 0xb4
ret 4
push 0x1b
mov esi, 0xf
xor edi, edi
push str.too_many_positional_options
lea ecx, [esp + 0x24]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], edi
mov byte [esp + 0x28], 0
call fcn.0041072d
mov bl, 0xd
lea ecx, [esp + 0x74]
mov byte [esp + 0xc4], bl
call fcn.005113ec
push 0xffffffffffffffff
push edi
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x8c]
mov byte [esp + 0xd0], 0xe
mov dword [esp + 0x80], vtable.std::logic_error.0
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa0], edi
mov byte [esp + 0x90], 0
call fcn.0040f4da
push 0x6b0210
lea ecx, [esp + 0x78]
push ecx
mov byte [esp + 0xcc], bl
mov dword [esp + 0x7c], vtable.boost::program_options::too_many_positional_options_error.0
call fcn.00518c50
int3