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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], eax
mov eax, dword [sym.imp.cygwin1.dll___stack_chk_guard]
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x34], edx
test ebx, ebx
je 0x46a8a5
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
sub edi, dword [esi]
mov ecx, edx
sub ecx, dword [esi]
sar edi, 2
sar ecx, 2
shl edi, 5
shl ecx, 5
add ecx, eax
sub edi, ecx
cmp edi, ebx
jae 0x46a8c0
mov eax, 0x7fffffe0
sub eax, ecx
cmp ebx, eax
ja 0x46abb7
cmp ebx, ecx
mov eax, ecx
cmovae eax, ebx
add ecx, eax
jb 0x46abaa
mov eax, 0x7fffffe0
cmp ecx, eax
cmova ecx, eax
add ecx, 0x1f
shr ecx, 5
lea eax, [ecx*4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sub.cygwin1.dll___wrap__Znwj
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [esp], eax
mov dword [esp + 0x38], eax
mov eax, dword [esi]
call fcn.004180e0
add ebx, edx
mov ebp, eax
lea ecx, [ebx + 0x1f]
cmovns ecx, ebx
sar ecx, 5
lea edi, [eax + ecx*4]
mov ecx, ebx
sar ecx, 0x1f
shr ecx, 0x1b
add ebx, ecx
and ebx, 0x1f
sub ebx, ecx
js 0x46a9f8
cmp edi, eax
je 0x46ab70
test edx, edx
jne 0x46aa40
mov ecx, edi
sub ecx, eax
cmp byte [esp + 0x30], 0
je 0x46aaea
mov dword [esp + 8], ecx
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebp
call sub.cygwin1.dll_memset
test ebx, ebx
je 0x46a840
mov ecx, 0x20
mov eax, 0xffffffff
sub ecx, ebx
shr eax, cl
or dword [edi], eax
nop
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 8], edx
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
call fcn.0046b4b0
mov ebp, edx
mov edx, dword [esi]
mov edi, eax
test edx, edx
je 0x46a889
mov eax, dword [esi + 0x10]
mov ecx, eax
sub ecx, edx
sub eax, ecx
mov dword [esp + 4], ecx
mov dword [esp], eax
call sub.cygstdc_6.dll_operator_delete_void__unsigned_int_
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov dword [esi + 4], 0
mov dword [esi + 8], edi
add eax, ebx
mov dword [esi], ebx
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], ebp
mov eax, dword [esp + 0x4c]
sub eax, dword [sym.imp.cygwin1.dll___stack_chk_guard]
jne 0x46aba5
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
lea edi, [ebx + eax]
test edi, edi
lea ecx, [edi + 0x1f]
cmovns ecx, edi
sar ecx, 5
lea ebp, [edx + ecx*4]
mov ecx, edi
sar ecx, 0x1f
mov dword [esp + 0x38], ebp
shr ecx, 0x1b
add edi, ecx
and edi, 0x1f
sub edi, ecx
mov ecx, edi
js 0x46a9e8
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], ebp
lea ebp, [ebx + ebp]
mov dword [esp + 0x14], ecx
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.0046b3f0
test ebp, ebp
lea eax, [ebp + 0x1f]
mov edx, dword [esp + 0x28]
cmovns eax, ebp
sar eax, 5
lea edx, [edx + eax*4]
mov eax, ebp
sar eax, 0x1f
shr eax, 0x1b
add ebp, eax
and ebp, 0x1f
sub ebp, eax
js 0x46a9d8
mov eax, dword [esp + 0x28]
cmp eax, edx
je 0x46ab20
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x46aa08
mov eax, edx
sub eax, dword [esp + 0x28]
cmp byte [esp + 0x30], 0
je 0x46aa9a
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
mov dword [esp + 0x28], edx
call sub.cygwin1.dll_memset
test ebp, ebp
mov edx, dword [esp + 0x28]
je 0x46a997
mov ecx, 0x20
mov eax, 0xffffffff
sub ecx, ebp
shr eax, cl
or dword [edx], eax
add ebx, dword [esi + 0xc]
mov edx, dword [esi + 8]
lea eax, [ebx + 0x1f]
cmovns eax, ebx
sar eax, 5
lea eax, [edx + eax*4]
mov dword [esp + 0x38], eax
mov eax, ebx
sar eax, 0x1f
shr eax, 0x1b
add ebx, eax
and ebx, 0x1f
sub ebx, eax
mov edi, ebx
test edi, edi
js 0x46aa70
mov eax, dword [esp + 0x38]
mov dword [esi + 8], eax
mov dword [esi + 0xc], edi
jmp 0x46a8a5
add ebp, 0x20
sub edx, 4
jmp 0x46a93a
lea ecx, [edi + 0x20]
sub ebp, 4
jmp 0x46a8ec
add ebx, 0x20
sub edi, 4
jmp 0x46a7f8
mov edi, eax
lea eax, [eax + 4]
mov dword [esp + 0x2c], eax
mov eax, 0xffffffff
mov edi, dword [edi]
shl eax, cl
mov ecx, eax
mov eax, edx
sub eax, dword [esp + 0x2c]
cmp byte [esp + 0x30], 0
je 0x46aa88
or edi, ecx
mov ecx, dword [esp + 0x28]
mov dword [ecx], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x34], edi
jmp 0x46a963
lea ecx, [eax + 4]
mov ebp, 0xffffffff
mov dword [esp + 0x3c], ecx
mov ecx, edx
mov edx, dword [eax]
shl ebp, cl
mov ecx, edi
sub ecx, dword [esp + 0x3c]
cmp byte [esp + 0x30], 0
je 0x46aae0
or edx, ebp
mov ebp, dword [esp + 0x3c]
mov dword [eax], edx
jmp 0x46a817
mov eax, dword [esp + 0x38]
add edi, 0x20
sub eax, 4
mov dword [esi + 8], eax
jmp 0x46a9cd
not ecx
and ecx, edi
mov edi, dword [esp + 0x28]
mov dword [edi], ecx
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x34], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 0x28], edx
call sub.cygwin1.dll_memset
test ebp, ebp
mov edx, dword [esp + 0x28]
je 0x46a997
mov ecx, 0x20
mov eax, 0xffffffff
sub ecx, ebp
shr eax, cl
not eax
and dword [edx], eax
jmp 0x46a997
not ebp
and edx, ebp
mov ebp, dword [esp + 0x3c]
mov dword [eax], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
call sub.cygwin1.dll_memset
test ebx, ebx
je 0x46a840
mov ecx, 0x20
mov eax, 0xffffffff
sub ecx, ebx
shr eax, cl
not eax
and dword [edi], eax
jmp 0x46a840
mov ebx, dword [esp + 0x2c]
cmp ebp, ebx
je 0x46a9be
mov edx, 0xffffffff
mov ecx, 0x20
sub ecx, ebp
mov eax, edx
shr eax, cl
mov ecx, ebx
mov ebx, dword [esp + 0x28]
shl edx, cl
and eax, edx
mov edx, dword [ebx]
mov dword [esp + 0x28], edx
mov edx, eax
or eax, dword [esp + 0x28]
not edx
and edx, dword [esp + 0x28]
cmp byte [esp + 0x30], 0
cmove eax, edx
mov dword [ebx], eax
jmp 0x46a9be
cmp ebx, edx
je 0x46a840
mov eax, 0xffffffff
mov ecx, 0x20
sub ecx, ebx
mov ebp, eax
shr ebp, cl
mov ecx, edx
shl eax, cl
and eax, ebp
mov edx, eax
or eax, dword [edi]
not edx
and edx, dword [edi]
cmp byte [esp + 0x30], 0
cmove eax, edx
mov dword [edi], eax
jmp 0x46a840
call sub.cygwin1.dll___stack_chk_fail
mov dword [esp + 0x34], 0xffffffc
jmp 0x46a7b1
mov dword [esp], str.vector_bool_::_M_fill_insert
call fcn.00450ff0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop