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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov esi, edx
mov ebx, ecx
mov edi, dword [ebp + 8]
push 0x1008e768
call dword [0x1008be30]
mov eax, dword [0x1008e780]
test eax, eax
je 0x10003ae0
mov ecx, ebx
shr ecx, 0x14
mov dword [eax + ecx*4], 0
push 0x1008e768
call dword [0x1008beb0]
cmp esi, 0x100000
je 0x10003b11
push 0x8000
push 0
push ebx
call dword [str._configure_narrow_argv]
test eax, eax
je 0x10003dc7
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
mov eax, dword [0x1008e7b4]
cmp eax, 0x7ffffff
ja 0x10003af3
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], 0x100000
cmp eax, 0x7f00001
jae 0x10003ddd
cmp edi, 1
je 0x10003b7c
mov esi, dword [ebp - 0x14]
mov eax, esi
and eax, 0xfffff
mov edi, 0x100000
sub edi, eax
mov ebx, dword [ebp - 0x10]
cmp edi, ebx
cmovae edi, ebx
push 0x4000
push edi
push esi
call dword [str._configure_narrow_argv]
test eax, eax
je 0x10003db2
add esi, edi
sub ebx, edi
mov eax, 0x100000
cmp ebx, eax
mov edi, 0x100000
cmovb edi, ebx
test ebx, ebx
jne 0x10003b50
push 0x1008e784
call dword [0x1008be30]
mov eax, dword [0x1008e72c]
test eax, eax
je 0x10003d85
mov dword [ebp - 0x18], eax
mov eax, dword [eax]
mov dword [0x1008e72c], eax
push 0x1008e784
call dword [0x1008beb0]
push 0x1008e7b8
call dword [0x1008be30]
mov ecx, dword [0x1008e7d0]
test ecx, ecx
je 0x10003c0a
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add eax, edx
xor ebx, ebx
mov esi, 0xffffffff
mov edi, dword [ecx + 0x10]
xor edx, edx
cmp edi, eax
setb dl
cmova edx, esi
cmp edx, 0xffffffff
jne 0x10003bea
mov ebx, ecx
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x10003bcd
jmp 0x10003bfb
cmp edx, 1
jne 0x10003ce4
mov ecx, dword [ecx + 0xc]
and ecx, 0xfffffffe
jmp 0x10003be4
test ebx, ebx
je 0x10003c0a
mov edi, dword [ebx + 0x10]
cmp edi, eax
je 0x10003ceb
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x10003df4
mov eax, dword [ebp - 0x14]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], 1
mov ecx, 0x1008e7d0
mov edx, ebx
call fcn.1003c6c0
mov dword [ebp - 0x18], 0
mov ecx, ebx
call fcn.1003c960
mov edi, dword [ebx + 8]
test edi, edi
je 0x10003caa
mov eax, dword [edi + 0xc]
cmp eax, 2
jae 0x10003da2
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x10]
cmp eax, dword [ebp - 0x14]
je 0x10003d14
mov eax, dword [ebp - 0x10]
lock add dword [0x1008e7b4], eax
mov eax, 0x1008e7b8
push eax
call dword [0x1008beb0]
mov esi, dword [ebp - 0x18]
test esi, esi
je 0x10003b09
mov edi, 0x1008e784
push edi
call dword [0x1008be30]
mov eax, dword [0x1008e72c]
mov dword [esi], eax
mov dword [0x1008e72c], esi
push edi
call dword [0x1008beb0]
jmp 0x10003b09
mov eax, dword [0x1008e7d0]
mov ecx, dword [ebx + 0x10]
xor edi, edi
xor esi, esi
dec esi
xor edx, edx
cmp ecx, dword [eax + 0x10]
seta dl
cmovb edx, esi
cmp edx, 0xffffffff
jne 0x10003ccc
mov eax, dword [eax + 8]
jmp 0x10003cb7
cmp edx, 1
jne 0x10003cdb
mov edi, eax
mov eax, dword [eax + 0xc]
and eax, 0xfffffffe
jmp 0x10003cb7
test edi, edi
je 0x10003c64
jmp 0x10003c55
mov ebx, ecx
jmp 0x10003c02
mov ecx, ebx
call fcn.10001010
mov eax, dword [ebp - 0x14]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x10]
add dword [ebx + 0x14], eax
cmp dword [ebx + 0x18], 1
je 0x10003c3b
mov dword [ebx + 0x18], 4
jmp 0x10003c3b
mov ecx, edi
call fcn.10001010
mov ecx, 0x1008e7d0
mov edx, edi
call fcn.1003c2c0
mov ecx, ebx
call fcn.10001010
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [edi + 0x14]
add dword [ebx + 0x14], eax
mov eax, dword [ebx + 0x18]
cmp eax, dword [edi + 0x18]
jne 0x10003dfe
mov ecx, ebx
call fcn.1003c960
mov eax, dword [ebp - 0x10]
lock add dword [0x1008e7b4], eax
push 0x1008e7b8
call dword [0x1008beb0]
push 0x1008e784
call dword [0x1008be30]
mov eax, 0x1008e784
mov ecx, dword [0x1008e72c]
mov dword [edi], ecx
mov dword [0x1008e72c], edi
jmp 0x10003c73
push 0x1008e784
call dword [0x1008beb0]
mov ecx, 0x1c
call fcn.1000cfe0
mov dword [ebp - 0x18], eax
jmp 0x10003ba9
and eax, 0xfffffffe
mov edi, eax
jne 0x10003c49
jmp 0x10003c64
mov dword [0x1008f8f4], 0x100837fa
int3
mov ecx, 0x100818e2
mov edx, 0x10084958
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
jmp 0x100405f0
mov edx, 0x8000000
sub edx, eax
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], edx
call 0x10040d60
jmp 0x10003b32
push 0x1008e7b8
jmp 0x10003c9f
mov dword [ebx + 0x18], 4
jmp 0x10003d46
cmp byte [edx + 0x3d], 0
je 0x1003fd74
cmp esi, 0xf00
ja 0x100404c1
cmp esi, 8
mov dword [esp + 4], edx
jbe 0x1004070f
cmp esi, 0x1f1
jae 0x10040045
lea ebx, [esi + 0xf]
mov eax, ebx
and eax, 0xfffffff0
mov dword [esp + 0x10], eax
shr ebx, 4
shl ebx, 5
lea edi, [edx + ebx]
add edi, 0x50
cmp byte [edx + 0x3c], 0
mov dword [esp + 0x28], ebx
je 0x1003fa97
cmp dword [edx + 0x40], 0
je 0x10041fca
lea eax, [edx + 0xc]
mov dword [esp + 0x1c], eax
push eax
call dword [0x1008be30]
mov ecx, dword [esp + 4]
mov edx, dword [edi]
test edx, edx
mov dword [esp + 0x14], esi
je 0x10040061
cmp dword [edx + 8], 0
je 0x10040061
cmp esi, 0x1f1
jae 0x1004001f
mov eax, dword [0x1008e3c8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 8]
test edx, edx
jne 0x1003fa52
mov edx, dword [0x1008e7f4]
mov eax, dword [0x1008e3c8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov dword [eax + 8], edx
jmp 0x1003fa52
mov edx, dword [0x1008e7f4]
jmp 0x1003fa46
mov ebx, dword [esp + 0xc]
jmp 0x1003fc56
lea ebx, [esi + 0xff]
mov eax, ebx
and eax, 0x1f00
mov dword [esp + 0x10], eax
shr ebx, 8
add ebx, 0x1e
jmp 0x1003fa7a
mov edx, dword [ecx + ebx + 0x54]
test edx, edx
mov dword [esp + 0x18], edi
je 0x10041406
lea eax, [ecx + ebx]
add eax, 0x54
mov dword [esp + 0x34], eax
mov eax, edx
mov ebx, eax
mov eax, dword [eax]
invalid
test eax, eax
jne 0x1004007d
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], 0
xor eax, eax
mov dword [esp + 8], ebx
cmp edx, ebx
setb al
mov ebx, 0xffffffff
cmova eax, ebx
cmp eax, 0xffffffff
jne 0x10040913
mov ecx, dword [edx]
test ecx, ecx
je 0x100423c8
mov eax, dword [ecx + 4]
mov dword [esp + 0x30], 0
test al, 1
je 0x10040757
mov ecx, edx
mov edx, esi
push 0
call fcn.1001c4e0
add esp, 4
mov ebx, eax
jmp 0x1003fb1f
and al, 0x2c
sub eax, ebx
mov dword [esp + 0x1c], eax
jb 0x10041228
mov eax, dword [esp + 0xc]
shr eax, 0xc
movzx eax, al
mov dword [esp + 4], eax
shr ebx, 0xc
lea eax, [edx + 0xc]
mov dword [esp + 0x28], eax
push eax
call dword [0x1008be30]
mov eax, dword [esp + 4]
add ebx, eax
cmp ebx, 0xfe
mov ecx, dword [esp + 0x20]
ja 0x1004063e
lea edx, [ebx + ebx*2]
mov eax, dword [ecx + edx*4 + 0x18]
test al, 1
je 0x10040c86
push dword [esp + 0x28]
call dword [0x1008beb0]
mov edx, dword [esp + 0x24]
jmp 0x1003fa3c
cmp esi, 2
jb 0x1004162a
mov edx, esi
mov ecx, 0x20
mov eax, 0x20
dec edx
je 0x1004072d
bsr eax, edx
xor eax, 0x1f
sub ecx, eax
xor eax, eax
inc eax
shl eax, cl
cmp eax, 9
mov ecx, 8
cmovae ecx, eax
mov dword [esp + 0x10], ecx
mov eax, ecx
shr eax, 3
or eax, 1
bsr ebx, eax
mov edx, dword [esp + 4]
jmp 0x1003fa7a
mov esi, dword [ecx]
test esi, esi
je 0x10040767
test byte [esi + 4], 1
jne 0x100400ca
or eax, 1
mov dword [ecx + 4], eax
mov esi, dword [edx + 4]
mov eax, esi
and eax, 0xfffffffe
je 0x100420d3
mov ecx, dword [eax]
test ecx, ecx
je 0x1004078d
mov ebx, dword [ecx + 4]
test bl, 1
jne 0x1004180a
or esi, 1
mov dword [edx + 4], esi
mov ecx, dword [eax]
or ecx, 1
mov dword [edx + 4], ecx
mov dword [eax], edx
mov ecx, eax
lea edx, [esp + 0x50]
and byte [ecx + 4], 0xfe
mov dword [edx], ecx
jmp 0x100400ca
test eax, eax
jne 0x10040ef0
mov eax, dword [edx + 4]
cmp eax, 1
ja 0x10041c60
mov eax, dword [edx]
test eax, eax
jne 0x10041dbe
mov dword [esp + 0x50], eax
jmp 0x10040270
and eax, 0xfffff000
cmp eax, dword [esp + 0x1c]
jb 0x1004063e
shl ebx, 0xc
add ebx, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x10], edx
mov edx, ebx
push dword [esp + 0x1c]
call fcn.100231c0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
add esp, 4
test al, al
je 0x1004063e
or edi, 3
mov eax, dword [esp + 4]
lea eax, [eax + eax*2]
mov dword [ecx + eax*4 + 0x18], edi
lea eax, [ecx + edx*4]
add eax, 0x18
mov dword [eax], 3
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
add dword [eax + 0x30], ecx
push dword [esp + 0x28]
call dword [0x1008beb0]
jmp 0x10040032
mov eax, dword [edx + 4]
mov dword [esp + 0x30], 0
mov ecx, eax
and ecx, 0xfffffffe
je 0x10040f12
mov esi, dword [ecx]
test esi, esi
je 0x10040f12
test byte [esi + 4], 1
jne 0x100400ca
mov ecx, dword [edx]
test ecx, ecx
je 0x10042481
test byte [ecx + 4], 1
jne 0x10041aa8
or eax, 1
mov dword [edx + 4], eax
mov eax, dword [ecx]
test eax, eax
je 0x10040f3e
mov ebx, dword [eax + 4]
test bl, 1
jne 0x10041b3c
or byte [ecx + 4], 1
mov eax, dword [edx + 4]
mov ecx, eax
and ecx, 0xfffffffe
je 0x100420d9
mov esi, dword [ecx]
and esi, 0xfffffffe
and eax, 1
or eax, esi
mov dword [edx + 4], eax
mov dword [ecx], edx
lea edx, [esp + 0x50]
jmp 0x100407a7
mov eax, ebx
sub eax, esi
add esi, dword [esp + 0xc]
push eax
push 0xe5
push esi
mov esi, edx
call fcn.1007ae52
add esp, 0xc
lea eax, [esi + 0xc]
mov dword [esp + 0x14], eax
push eax
call dword [0x1008be30]
mov eax, dword [esp + 0xc]
shr eax, 0xc
movzx eax, al
mov ecx, edi
or ecx, 3
lea edx, [eax + eax*2]
mov esi, dword [esp + 0x20]
mov dword [esi + edx*4 + 0x18], ecx
mov ecx, edi
shr ecx, 0xc
add ecx, eax
sub ebx, edi
or ebx, 3
lea eax, [ecx + ecx*2]
mov dword [esi + eax*4 + 0x18], ebx
mov ebx, dword [esp + 0xc]
add edi, ebx
mov esi, dword [esp + 0x24]
mov ecx, esi
mov edx, edi
push 1
call fcn.100273d0
add esp, 4
mov eax, dword [esp + 0x1c]
add dword [esi + 0x30], eax
push dword [esp + 0x14]
jmp 0x1003fc50
mov edx, dword [ecx + ebx + 0x5c]
push 0
call fcn.1001ea70
add esp, 4
test eax, eax
je 0x10041fa7
cmp eax, dword [edi]
mov ecx, dword [esp + 4]
mov edx, eax
je 0x1004148c
mov dword [edx], edi
xor eax, eax
cmp dword [ecx + ebx + 0x64], 1
je 0x1004144d
mov eax, dword [esp + 4]
lea ecx, [eax + ebx]
add ecx, 0x64
xor eax, eax
mov dword [edx + eax*4 + 0xc], 0xffffffff
inc eax
mov esi, dword [ecx]
dec esi
cmp eax, esi
jb 0x1004143d
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x28]
mov ebx, dword [edi + ecx + 0x60]
and ebx, 0x1f
mov ecx, ebx
neg cl
xor esi, esi
dec esi
shr esi, cl
cmp ebx, 1
mov ebx, dword [esp + 0x28]
sbb ecx, ecx
or ecx, esi
mov dword [edx + eax*4 + 0xc], ecx
mov ecx, edi
mov dword [edx + 4], 0
mov eax, dword [edi + ebx + 0x60]
mov dword [edx + 8], eax
inc dword [edi + ebx + 0x6c]
mov edi, dword [esp + 0x18]
mov dword [edi], edx
jmp 0x1003fac1
xor ecx, ecx
jmp 0x1004072f
and ebx, 0xfffffffe
mov dword [eax], ebx
mov esi, dword [ecx + 4]
and esi, 1
or esi, eax
mov dword [ecx + 4], esi
and ecx, 0xfffffffe
mov eax, dword [edx + 4]
and eax, 1
lea esi, [eax + ecx]
mov dword [edx + 4], esi
test ecx, ecx
je 0x100420d9
mov esi, dword [ecx]
and esi, 0xfffffffe
or esi, eax
mov dword [edx + 4], esi
mov dword [ecx], edx
mov eax, dword [edx + 4]
and eax, 0xfffffffe
je 0x100419d9
mov ebx, dword [eax + 4]
test bl, 1
je 0x100419d9
and ebx, 0xfffffffe
mov dword [eax + 4], ebx
mov eax, dword [edx + 4]
mov esi, eax
or esi, 1
mov dword [edx + 4], esi
and eax, 0xfffffffe
je 0x100420d9
mov esi, dword [eax]
or esi, 1
mov dword [edx + 4], esi
mov dword [eax], edx
mov dword [ecx], eax
jmp 0x1004079f
mov dword [edx + 4], eax
jmp 0x1004079f
lea esi, [esp + 0x40]
mov ecx, esi
call 0x10000550
mov ecx, dword [esi]
jmp 0x10040f5f
and ebx, 0xfffffffe
mov dword [eax + 4], ebx
mov ecx, dword [edx]
test ecx, ecx
je 0x100423a7
mov eax, dword [ecx + 4]
and eax, 0xfffffffe
mov dword [edx], eax
mov eax, edx
and eax, 0xfffffffe
mov esi, dword [ecx + 4]
and esi, 1
or esi, eax
mov dword [ecx + 4], esi
mov esi, dword [edx + 4]
mov eax, esi
and eax, 0xfffffffe
je 0x100420d9
mov ebx, dword [eax]
and ebx, 0xfffffffe
and esi, 1
or esi, ebx
mov dword [edx + 4], esi
mov dword [eax], edx
mov edx, dword [ecx + 4]
and edx, 1
or edx, eax
mov dword [ecx + 4], edx
jmp 0x10040f5f
lea ecx, [esp + 0x50]
mov dword [esp + 0x30], ecx
jmp 0x10040efb
mov ecx, dword [eax + 4]
and ecx, 0xfffffffe
mov dword [edx], ecx
mov ecx, edx
and ecx, 0xfffffffe
mov esi, dword [eax + 4]
and esi, 1
or esi, ecx
mov dword [eax + 4], esi
mov esi, dword [edx + 4]
and esi, 1
or esi, ecx
mov ecx, dword [esp + 4]
mov dword [eax + 4], esi
mov edi, dword [esp + 0x18]
or byte [edx + 4], 1
and dword [eax + 4], 1
jmp 0x10040931
mov dword [edi], 0
mov dword [esp + 0x18], edi
mov ebx, esi
mov byte [edx + 0x3c], 0
lea eax, [esp + 0x50]
push eax
call fcn.1000bb00
add esp, 4
lea esi, [esp + 0x40]
push esi
call fcn.1000bb00
add esp, 4
mov ecx, 0x10
call fcn.1000bb60
xor edx, edx
cmp byte [esi + 8], 0
mov ecx, 0
mov esi, 0
je 0x10042012
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
cmp byte [esp + 0x58], 0
mov edi, 0
je 0x10042026
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
mov edx, dword [esp + 4]
mov dword [edx + 0x40], eax
mov byte [edx + 0x3c], 1
mov esi, ebx
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
jmp 0x1003fa97