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

Disassembly:
push 0xffffffffffffffff
push 0x5df117
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
mov eax, dword [0x70b744]
xor eax, esp
mov dword [esp + 0xa4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x70b744]
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.0050cd90
mov edi, 1
mov dword [esp + 0xc4], edi
je 0x5196c6
push eax
lea ecx, [esp + 0x58]
call fcn.00517810
mov edx, dword [ebp + 0x20]
neg edx
sbb edx, edx
test edx, fcn.0050cd90
je 0x519724
mov eax, 0x519440
push ebp
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.005195e0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xc8], 2
call fcn.00517810
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov byte [esp + 0xc4], 1
je 0x519724
mov eax, dword [eax]
cmp eax, ebx
je 0x519724
lea ecx, [esp + 0x24]
push 2
push ecx
mov edx, ecx
push edx
call eax
add esp, 0xc
test byte [ebp + 0x10], 1
je 0x519779
mov eax, fcn.005186b0
push ebp
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.005195e0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xc8], 3
call fcn.00517810
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov byte [esp + 0xc4], 1
je 0x519779
mov eax, dword [eax]
cmp eax, ebx
je 0x519779
lea ecx, [esp + 0x24]
push 2
push ecx
mov edx, ecx
push edx
call eax
add esp, 0xc
test dword [ebp + 0x10], 0x800
je 0x5197d1
mov eax, 0x5190e0
push ebp
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.005195e0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xc8], 4
call fcn.00517810
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov byte [esp + 0xc4], 1
je 0x5197d1
mov eax, dword [eax]
cmp eax, ebx
je 0x5197d1
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 0x51982b
test al, 4
je 0x51982b
mov eax, 0x5189c0
push ebp
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.005195e0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xc8], 5
call fcn.00517810
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov byte [esp + 0xc4], 1
je 0x51982b
mov eax, dword [eax]
cmp eax, ebx
je 0x51982b
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 0x519885
test al, 8
je 0x519885
mov eax, 0x518ec0
push ebp
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.005195e0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xc8], 6
call fcn.00517810
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov byte [esp + 0xc4], 1
je 0x519885
mov eax, dword [eax]
cmp eax, ebx
je 0x519885
lea ecx, [esp + 0x24]
push 2
push ecx
mov edx, ecx
push edx
call eax
add esp, 0xc
mov eax, 0x519280
push ebp
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.005195e0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xc8], 7
call fcn.00517810
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov byte [esp + 0xc4], 1
je 0x5198d4
mov eax, dword [eax]
cmp eax, ebx
je 0x5198d4
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.0042c07c
test al, al
jne 0x519cd1
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x18], ebx
jmp 0x519900
mov edi, dword [esp + 0x58]
cmp edi, ebx
je 0x519b6c
mov esi, dword [esp + 0x5c]
sub esi, edi
sar esi, 5
cmp dword [esp + 0x4c], esi
jae 0x519b6c
mov ecx, ebp
call fcn.0041c3a3
cmp dword [esp + 0x4c], esi
mov dword [esp + 0x64], eax
jb 0x519939
call fcn.0051e314
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x18]
push ebp
lea edx, [esp + 0x40]
lea ecx, [edi + eax]
push edx
call fcn.005183d0
mov esi, dword [esp + 0x40]
cmp esi, ebx
mov edi, dword [esp + 0x44]
je 0x519ae5
mov ecx, edi
sub ecx, esi
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x519ae5
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 0x519998
xor eax, eax
jmp 0x5199ad
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 0x5199f9
test esi, esi
je 0x5199cf
sub edi, esi
mov eax, 0x78787879
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x5199d8
call fcn.0051e314
mov esi, dword [esp + 0x40]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x54]
add esi, ebx
push esi
call fcn.00517b70
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
add ebp, 1
add ebx, 0x44
jmp 0x519990
cmp esi, edi
mov ebx, edi
jbe 0x519a0c
call fcn.0051e314
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 0x519a21
cmp eax, esi
jae 0x519a26
call fcn.0051e314
lea esi, [ebx - 0x44]
cmp esi, dword [ebp + 8]
jb 0x519a33
call fcn.0051e314
mov ecx, dword [esp + 0x50]
push ecx
push esi
call fcn.00517b70
xor ebp, ebp
xor ebx, ebx
mov esi, dword [esp + 0x40]
test esi, esi
mov edi, dword [esp + 0x44]
je 0x519a7b
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 0x519a7b
mov ecx, dword [esp + 0x14]
add esi, ebx
push esi
call fcn.005185d0
add ebp, 1
add ebx, 0x44
jmp 0x519a42
mov eax, dword [esp + 0x20]
test eax, eax
je 0x519ad1
mov edi, dword [esp + 0x24]
cmp eax, edi
je 0x519ac0
lea esi, [eax + 0x18]
mov edi, edi
cmp dword [esi], 0x10
jb 0x519aa1
mov eax, dword [esi - 0x14]
push eax
call fcn.0051d492
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 0x519a90
mov eax, dword [esp + 0x20]
push eax
call fcn.0051d492
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.0041c3a3
cmp eax, dword [esp + 0x64]
mov byte [esp + 0xc4], 1
jne 0x519b38
cmp esi, ebx
je 0x519b1d
cmp esi, edi
je 0x519b14
mov ecx, esi
call fcn.0042cee7
add esi, 0x44
cmp esi, edi
jne 0x519b02
mov esi, dword [esp + 0x40]
push esi
call fcn.0051d492
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 0x519900
cmp esi, ebx
je 0x519b5b
cmp esi, edi
je 0x519b52
mov ecx, esi
call fcn.0042cee7
add esi, 0x44
cmp esi, edi
jne 0x519b40
mov esi, dword [esp + 0x40]
push esi
call fcn.0051d492
add esp, 4
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
jmp 0x519cc2
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 0x519be9
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 0x519bee
call fcn.0051e314
mov ecx, dword [ebp + 4]
push ecx
lea ecx, [esp + 0x98]
call fcn.00415e25
mov eax, dword [ebp + 4]
cmp eax, ebx
je 0x519c1f
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 0x519c24
call fcn.0051e314
mov ecx, dword [ebp + 4]
push ecx
lea ecx, [esp + 0xa8]
call fcn.00415e25
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x74]
push edx
call fcn.005185d0
mov ebx, dword [ebp + 4]
cmp ebx, dword [ebp + 8]
jbe 0x519c4f
call fcn.0051e314
mov edi, dword [ebp + 8]
lea esi, [ebx + 0x1c]
cmp esi, edi
je 0x519c74
sub ebx, esi
jmp 0x519c60
push 0xffffffffffffffff
push 0
push esi
lea ecx, [esi + ebx]
call fcn.0040f845
add esi, 0x1c
cmp esi, edi
jne 0x519c60
mov edi, dword [ebp + 8]
lea esi, [edi - 0x1c]
cmp esi, edi
je 0x519cab
add esi, 0x18
xor ebx, ebx
cmp dword [esi], 0x10
jb 0x519c94
mov eax, dword [esi - 0x14]
push eax
call fcn.0051d492
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 0x519c83
add dword [ebp + 8], 0xffffffe4
lea ecx, [esp + 0x74]
mov byte [esp + 0xc4], 1
call fcn.0042cee7
xor ebx, ebx
mov ecx, ebp
call fcn.0042c07c
test al, al
je 0x5198f0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
xor esi, esi
call fcn.0042c22a
test eax, eax
jbe 0x519d7d
xor edi, edi
lea ebx, [ebx]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
cmp eax, ebx
je 0x519d17
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 0x519d1c
call fcn.0051e314
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
cmp dword [eax + edi + 0x14], ebx
jne 0x519d66
cmp eax, ebx
je 0x519d4b
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 0x519d50
call fcn.0051e314
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.0042c22a
cmp esi, eax
jb 0x519cf0
cmp dword [ebp + 0x1c], ebx
mov esi, dword [esp + 0x14]
je 0x519e13
mov ecx, esi
xor ebx, ebx
xor edi, edi
call fcn.0042c22a
test eax, eax
jbe 0x519e13
mov dword [esp + 0x18], edi
mov eax, dword [esi + 4]
test eax, eax
je 0x519dbe
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 0x519dc3
call fcn.0051e314
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 4]
add esi, dword [esp + 0x18]
cmp dword [esi + 0x1c], 0xffffffff
je 0x519dfc
mov ecx, dword [ebp + 0x1c]
call fcn.0051b810
cmp ebx, eax
jae 0x519e92
mov ecx, dword [ebp + 0x1c]
push ebx
call fcn.0051b840
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.0040f845
add ebx, 1
mov esi, dword [esp + 0x14]
add dword [esp + 0x18], 0x44
mov ecx, esi
add edi, 1
call fcn.0042c22a
cmp edi, eax
jb 0x519d9d
mov eax, dword [esp + 0x58]
test eax, eax
mov byte [esp + 0xc4], 0
je 0x519e66
mov ecx, dword [esp + 0x5c]
cmp eax, ecx
mov edi, ecx
mov esi, eax
je 0x519e59
nop
mov eax, dword [esi]
test eax, eax
je 0x519e4e
mov ecx, dword [eax]
test ecx, ecx
je 0x519e48
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 0x519e30
mov eax, dword [esp + 0x58]
push eax
call fcn.0051d492
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.0051d721
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.00410a89
mov bl, 0xd
lea ecx, [esp + 0x74]
mov byte [esp + 0xc4], bl
call fcn.0051d730
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.0040f845
push 0x6dc178
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.0052365b
int3